创建支持ssh服务的docker容器和镜像
Posted 林肯公园
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了创建支持ssh服务的docker容器和镜像相关的知识,希望对你有一定的参考价值。
http://www.kongxx.info/blog/?p=57
1. 这里使用的centos作为容器,所以首先下载centos的images
sudo docker pull centos
2. 下载后运行一个centos的容器,这里使用centos6作为我测试的容器
sudo docker run --name=centos-ssh -i -t centos:centos6 /bin/bash
3. 安装openssh-server服务软件包
yum install openssh-server
4. 编辑sshd的配置文件/etc/ssh/sshd_config,将其中UsePAM参数设置成“no”
5. 启动sshd服务
/etc/init.d/sshd start
6. 添加测试用户admin,密码admin
useradd admin
echo ‘admin:admin‘ | chpasswd
7. 为了使新添加的用户可以运行sudo命令,需要安装sudo软件包,并将admin添加到sudoers里
yum install sudo <--安装sudo软件包
visudo <--编辑sudoers,添加下面的行到文件里
admin ALL=(ALL) ALL
8. 测试,做完上面工作之后,使用ifconfig来查看一下容器的ip,或者使用“sudo docker inspect ”查看,然后就可以在宿主机器上通过ssh [email protected]<ip>来访问新创建的docker容器了。
9. 如果想要把做好的支持ssh服务的容器作为一个docker的镜像,先退出容器,然后使用下面的命令来创建
sudo docker commit <container id> <image name>
10. 用刚保存的镜像,后台启动一个新的容器
docker run --name [image-name] -i -t -p 50001:22 [image-id]
例: # docker run -d -p 50001:22 ubuntu/ruby:v2 /usr/sbin/sshd -D
11. ssh远程登录该容器
# ssh [email protected] -p 50001
如果想要通过ssh密钥登录,则在第2步,修改 /etc/ssh/sshd_config 文件,将RSAAuthentication 和 PubkeyAuthentication 后面的值都改成yes ,保存。
将本地.ssh下的id_rsa.pub上传到容器中的 id_rsa.pub,并 # mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys,然后 # chmod 600 /root/.ssh/authorized_keys 即可.
以上是关于创建支持ssh服务的docker容器和镜像的主要内容,如果未能解决你的问题,请参考以下文章