【原文链接】基于openEuler容器镜像制作可ssh登录的docker镜像
(1)以 openeuler:22.03-lts 为例,首先以交互的方式启动容器
docker run -it --rm --privileged openeuler/openeuler:22.03-lts /bin/bash
(2)然后安装基础软件即ssh服务
dnf install -y net-tools
dnf install -y openssh-clients
dnf install -y openssh-server
ssh-keygen -A
mkdir /var/run/sshd
echo 'root:osImagePassword123' |chpasswd
echo 'StrictHostKeyChecking no' >> /etc/ssh/ssh_config
echo 'UserKnownHostsFile /dev/null ' >> /etc/ssh/ssh_config
(3)然后启动sshd服务
/usr/sbin/sshd -D &
(4)然后将运行的容器生成镜像,这里 e4827a50c0ed 为容器id
docker commit 183d39a4b058 redrose2100/openeuler-ssh:22.03-lts
(5)此时查看镜像,如下镜像已经生成。
[root@centos7-1 ~]# docker images | grep redrose2100/openeuler
redrose2100/openeuler-ssh 22.03-lts 2dc9c7518bbc About a minute ago 666MB
[root@centos7-1 ~]#
(6)将运行的容器退出,直接执行exit即可退出
(7)然后使用新生成的镜像启动容器
docker run -d --name=vm1 --privileged redrose2100/openeuler-ssh:22.03-lts /usr/sbin/sshd -D
(8)此时查看容器,可以看到容器已经在后台运行
[root@centos7-1 openeuler]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6f2f87e1b117 redrose2100/openeuler-ssh:22.03-lts "/usr/sbin/sshd -D" 3 seconds ago Up 2 seconds vm1
[root@centos7-1 openeuler]#
(9)然后通过docker exec 的方式进入容器,查看ip地址
[root@centos7-1 openeuler]# docker exec -it 6f2f87e1b117 bash
Welcome to 3.10.0-1160.el7.x86_64
System information as of time: Mon Dec 12 08:38:51 UTC 2022
System load: 5.38
Processes: 6
Memory used: 31.4%
Swap used: 0%
Usage On: 33%
Users online: 0
[root@6f2f87e1b117 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
ether 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 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@6f2f87e1b117 /]#
(10)退出容器,然后通过ssh方式登录,如下可以登录
[root@centos7-1 openeuler]# ssh -o "StrictHostKeyChecking no" root@172.17.0.2
Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.
root@172.17.0.2's password:
Welcome to 3.10.0-1160.el7.x86_64
System information as of time: Mon Dec 12 08:40:37 AM UTC 2022
System load: 6.16
Processes: 8
Memory used: 31.2%
Swap used: 0%
Usage On: 33%
Users online: 0
[root@6f2f87e1b117 ~]#