zl程序教程

您现在的位置是:首页 >  后端

当前栏目

基于CentOS容器镜像制作可ssh登录的docker镜像

sshcentosDocker容器镜像 基于 登录 制作
2023-09-14 09:12:50 时间

【原文链接】基于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:Admin123456' |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<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@79d890184d34 /]#

(10)退出容器,然后通过ssh方式登录,如下可以登录

[root@centos7-1 openeuler]# ssh -o "StrictHostKeyChecking=no" 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<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 85  bytes 12046 (11.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 57  bytes 10094 (9.8 KiB)
        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@79d890184d34 ~]#