【原文链接】基于CentOS容器镜像制作可ssh登录的docker镜像
(1)以centos:7.9.2009为例,首先以交互的方式启动容器
docker run -it --rm --privileged centos:7.9.2009 /bin/bash
(2)然后安装基础软件即ssh服务
yum install -y net-tools
yum install -y openssh-clients
yum install -y openssh-server
ssh-keygen -A
mkdir /var/run/sshd
echo 'root:root:osImagePassword123' |chpasswd
(3)然后启动sshd服务
/usr/sbin/sshd -D &
(4)然后将运行的容器生成镜像,这里 e4827a50c0ed 为容器id
docker commit e4827a50c0ed redrose2100/centos-ssh:7.9.2009
(5)此时查看镜像,如下镜像已经生成。
[root@centos7-1 ~]# docker images | grep redrose2100
redrose2100/centos-ssh 7.9.2009 62b2d2fccae6 17 seconds ago 398MB
[root@centos7-1 ~]#
(6)将运行的容器退出,直接执行exit即可退出
(7)然后使用新生成的镜像启动容器
docker run -d --name=vm1 --privileged redrose2100/centos-ssh:7.9.2009 /usr/sbin/sshd -D
(8)此时查看容器,可以看到容器已经在后台运行
[root@centos7-1 openeuler]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
79d890184d34 redrose2100/centos-ssh:7.9.2009 "/usr/sbin/sshd -D" 5 seconds ago Up 3 seconds vm1
[root@centos7-1 openeuler]#
(9)然后通过docker exec 的方式进入容器,查看ip地址
[root@centos7-1 openeuler]# docker exec -it 79d890184d34 /bin/bash
[root@79d890184d34 /]# ifconfig
eth0: flags=4163 mtu 1500inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)RX packets 8 bytes 656 (656.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73 mtu 65536inet 127.0.0.1 netmask 255.0.0.0loop txqueuelen 1000 (Local Loopback)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@79d890184d34 /]#
(10)退出容器,然后通过ssh方式登录,如下可以登录
[root@centos7-1 openeuler]# ssh root@172.17.0.2
root@172.17.0.2's password:
Last login: Mon Dec 12 07:15:44 2022 from 172.17.0.1
[root@79d890184d34 ~]# ifconfig
eth0: flags=4163 mtu 1500inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)RX packets 85 bytes 12046 (11.7 KiB)RX errors 0 dropped 0 overruns 0 frame 0TX packets 57 bytes 10094 (9.8 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73 mtu 65536inet 127.0.0.1 netmask 255.0.0.0loop txqueuelen 1000 (Local Loopback)RX packets 0 bytes 0 (0.0 B)RX errors 0 dropped 0 overruns 0 frame 0TX packets 0 bytes 0 (0.0 B)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0[root@79d890184d34 ~]#