创建支持ssh服务的docker镜像

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Acoolbest/article/details/87875505

容器里面执行以下操作
1、
apt-get install openssh-server

2、
mkdir -p /var/run/sshd

3、
修改/etc/ssh/sshd_config
RSAAuthentication yes #启用 RSA 认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
PermitRootLogin yes #root能使用ssh登录
UsePAM no #将原有的yes替换掉

可以将需要登陆主机的本地 ~/.ssh/id_rsa.pub 导入到容器的 ~/.ssh/authorized_keys 中,实现免密登陆

4、
通过passwd命令修改root密码

5、
vi /run.sh
chmod a+x /run.sh
#!/bin/bash
/usr/sbin/sshd -D

6、
exit

7、
docker commit 容器ID或容器NAME 新镜像REPOSITORY:新镜像TAG
docker commit compile sshd:ubuntu
docker run -idt --name sshd_ubuntu -p 10022:22 -v /root/code:/root/code -v /share:/share sshd:ubuntu /run.sh
-v 增加挂载目录的原因:虽然原有镜像可能已挂载目录,但用commit后镜像创建容器的话,不会继承曾经的映射

8、
用宿主主机ip的10022端口可以直接访问容器
ssh [email protected] -p 10022

ssh [email protected] -p 10022
密码就是之前在容器中用passwd设定的root密码,也可重新进入容器修改
 

猜你喜欢

转载自blog.csdn.net/Acoolbest/article/details/87875505