使用docker commit命令创建基于docker的sshd服务
1.使用ubuntu:14.04创建一个容器:
docker run --name test -it ubuntu:14.04 /bin/bash
2.更新apt缓存,并且安装openssh-server(在容器中)
apt-get update && apt-get install openssh-server -y
3.要想sshd服务可以正常启动,/var/run/sshd目录必须存在
mkdir -p /var/run/sshd
4.以daemon的方式启动sshd
/usr/sbin/sshd -D &
至此,一个基于docker的sshd服务就搭建好了。
要是不想使用sshd的pam,则可以通过配置文件将其取消
sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
配置登录信息
.在需要登录的用户家目录下创建.ssh目录,并且复制需要登录的公钥信息到authorized_keys文件中:
mkdir /root/.ssh
vi /root/.ssh/authorized_keys
自己创建启动sshd的脚本,给其可执行权限
touch run.sh
run.sh内容如下:
#!/bin/bash
/usr/sbin/sshd -D &
chmod +x run.sh
退出容器,使用docker commit命令保存一个新的sshd:ubuntu镜像:
docker commit test sshd:ubuntu
使用docker images 可以看到刚才保存的镜像
基于sshd:ubuntu镜像,创建一个有sshd服务的容器
docker run --name sshd -d -p 2233:22 sshd:ubuntu /run.sh
最后使用自己的机器可以尝试登录刚才创建的sshd容器。