为docker容器单独分配ip,这样就可以像使用vm一样,进行远程连接。
实验环境:windows7主机,centos7虚拟机192.168.1.3 ,容器系统centos.6.7(安装在虚拟机192.168.1.3)
1、首先创建子网(主机192.168.1.3中执行)
docker network create --subnet=172.18.0.0/16 mynetwork
#查看创建子网
docker network ls
2、分配ip(主机192.168.1.3中执行)
docker run -itd --name test --net mynetwork --ip 172.18.0.3 centos:6.7 bash
可以exec进入容器查看ip确实分配成功
进入容器:
docker exec -it test /bin/bash
3、安装ssh服务端和客户端:(容器test中执行)
yum -y install openssh-server openssh-clients
安装passwd,设置密码:
yum install passwd
passwd root
修改配置/etc/ssh/sshd_config 开启:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
4、开机启动:(容器test中执行)
service sshd start
chconfig sshd on
5、ssh登录:(主机192.168.1.3中执行)
ssh 172.18.0.3
注意:另开一个192.168.1.3的终端执行ssh连接,不要关闭了容器test。虽然本实验不会有这种情况,因为第2步带了-d
注意:开机启动在docker中无法生效,docker中reboot出错
6、保存为新的镜像:(主机192.168.1.3中执行)
docker commit -m 'install openssh' -a 'joker' 0dbaafe5adc6 joker/centos6:ssh
7、windows主机上ssh连接docker
在windows主机上ping172.18.0.3不通,也无法ssh连接
docker run -it -p 2222:22 joker/centos6:ssh /bin/bash #创建并运行容器,将容器的22端口映射到主机2222端口(主机192.168.1.3中执行)
service sshd start #(容器中执行)
最后可以在windos7主机上通过ip 192.168.1.3,端口2222 ssh 连接容器