思路概述
- 下载一个Centos镜像
- 以该镜像创建容器
- 连接到容器
- 手动安装sshd服务
- 保存容器修改到新镜像
代码
#查找centos镜像
docker search centos
#下载镜像
docker pull centos
#启动容器,注意,这里后面的CMD不能省略,否则容器自动退出
docker run -d -i -t <imageID> /bin/bash
#连接到容器
docker attach <ContainerID>
#安装OpenSSH服务
yum install openssh-server -y
#生成ssh key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
#退出,但不停止容器
Ctrl+P+Q
#回到Docker下面,停止容器
docker stop <容器ID>
#提交当前容器到镜像
docker commit <容器ID> <NAME/VERSION>
#启动新容器,并且进行端口映射
docker run -itd -p 2222:22 centos-sshd /usr/sbin/sshd -D
要点
- 即使使用-d去启动容器,也要给出CMD参数,否则centos容器启动后自动退出。
- sshd不能用服务的方式启动,因为centos7的镜像中没有systemctl命令。需要/usr/sbin/sshd -D来启动sshd。