docker 分配固定 ip

为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 连接容器

转自:https://blog.csdn.net/a60782885/article/details/78976715

猜你喜欢

转载自blog.csdn.net/Man_In_The_Night/article/details/86086838