声明转载 https://zhuanlan.zhihu.com/p/52827335
配置SSH服务
接着我们在刚刚新建的容器里配置SSH服务,首先安装openssh-server:
$ apt update
$ apt install -y openssh-server
然后建立一个配置文件夹并进行必要的配置:
$ mkdir /var/run/sshd
$ echo 'root:passwd' | chpasswd
这里使用你自己想设置的用户名和密码,但是一定要记住!
$ sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
$ sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
$ echo "export VISIBLE=now" >> /etc/profile
如果连不上SSH服务,可能是某些版本的PermitRootLogin yes默认被注释了,可以使用如下(感谢 @Chenjie Xing 的反馈):
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
重启SSH激活配置:
$ service ssh restart
在服务器(宿主机)上(不是服务器的docker里)测试刚刚新建docker容器中哪个端口转发到了服务器的22端口:
$ sudo docker port [your_container_name] 22
如果前面的配置生效了,你会看到如下输出
0.0.0.0:8022
最后测试能否用SSH连接到远程docker:
$ ssh root@[your_host_ip] -p 8022
密码是你前面自己设置的
到这里说明服务器的docker端已经完成配置。