-
启动一个基础镜像,特权启动支持
systemctl
命令docker run -itd --name ssh --privileged=true centos:7/usr/sbin/init
-
安装服务
查看一个服务对应的包名yum provides sshd # 可以看到包名 ## openssh-server-7.4p1-21.el7.x86_64 : An open source SSH server Repo : base Matched from: Filename : /usr/sbin/sshd # 安装 sshd 服务 yum install -y openssh-server
-
启动服务
容器里启动 ssh 服务时会进行一次初始化,生成相关的 key 文件
-
设置root密码
passwd
-
容器打包为镜像
docker commit ssh centos7_sshd:v1
-
测试
docker run -itd --name test-ssh -p 2222:22 local/centos7_ssh /usr/sbin/sshd -D
注意事项:
- 命令要使用
/usr/sbin/sshd
才能把 ssh 服务调用起来 -D
是为了让 ssh 在前台运行,从而使容器一直运行,如果命令执行完成,容器会在 Exited 状态
学到一个小技巧:
使 docker 镜像一直挂起的办法:tail -F /111 ,即使文件不存在,命令也不会结束运行,可以用来做测试