windows和docker容器的ssh连接

windows和docker容器的ssh连接
1、背景及概述
关系:宿主机(windows10)----》VMware虚拟机(10.0.0.150)----》docker容器(192.17.0.2)
目的:在windows电脑ssh到linux虚拟机中的docker容器中,证明能通过端口映射关系访问到容器。
1.1、背景
项目中经常需要基于进行ssh连接两台设备。且有时想验证PC和容器之间的网络连接状态。
2、网络设置
2.1、固定ip
将docker容器的ip固定
$ docker network create -d bridge --subnet=192.17.0.0/24 mynetwork
$ docker network ls

2.2、启动容器
容器ip设为192.17.0.2,宿主机端口为8022,容器端口为22。这里使用-p 8022:22将linux的8022端口与docker容器22端口映射起来也就是访问[虚拟机ip]:8022会将信息转发给[docker容器]:22。
$ docker run -it -p 8022:22 --name app1 --net mynetwork --ip 192.17.0.2 --privileged=true 970b9230259a bash
$ apt-get install net-tools
$ ifconfig

查看容器ip为192.17.0.2,主机ip为10.0.0.150

3、安装SSH
3.1、安装
SSH分客户端openssh-client和服务器openssh-server,如果你只是想登陆别的机器,只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使别的机器登陆本机就需要在本机安装openssh-server。容器中安装:
$ apt-get install openssh-server
$ apt-get install openssh-client
$ /etc/init.d/ssh start
$ ps -e | grep ssh

3.2、更改密码
可以设成自定义用户名密码或者root,这里设成root,密码自定,我设为1
$ passwd root

3.3、更改SSH配置
将PermitRootLogin改成下图,意为允许以root账户登录
$ vim /etc/ssh/sshd_config

此时已经可以在linux虚拟机中ssh到docker容器中了
ssh root@ 10.0.0.150 -p 8022这个命令是访问本地8022端口,然后端口转发给docker容器的22端口。
 
或者直接连接docker地址使用该命令
ssh root@ 192.17.0.2 -p 22
结果如下:

4、验证
windows terminal中输入ssh [email protected] -p 8022,输入密码,即可访问docker中的文件。

你可能感兴趣的:(docker,docker,ssh,linux)