1、Container安裝ssh服務,博主的linux是centos
① 安裝ssh
sudo yum install openssh-server #安裝ssh服務器
service sshd status # 查看ssh服務啟動情況
service sshd start # 啟動ssh服務
② 配置ssh,允許root登陸
vi /etc/ssh/sshd_config
將 PermitRootLogin 的值從 withoutPassword 改為 yes
③ 重啟ssh服務
service sshd restart # 重啟動ssh服務
2、保存Container鏡像
3、重新運行Container
docker run -it -p 50001:22 tomjerry/foobar /bin/bash
service sshd start
注意-p 50001:22這句,意思是將docker的50001端口和container的22端口綁定,這樣訪問docker的50001等價於訪問container的22端口
4、ssh連接container
你可以用xshell或putty等ssh客戶端工具連接container,首先假設各方的ip如下:
本地windows ip: 192.168.99.1
docker ip:10.0.75.1
container ip:172.17.0.2
那么,你要遠程container,則要訪問以下地址:
ssh 192.168.99.100:50001
這樣通過訪問docker的50001端口,就神奇的間接連通到container的22端口了,從而達到ssh連接container的目的。
如果root登錄仍提示需要密碼,可以新建一個賬戶,分配密碼,再給這個賬戶設置從普通賬戶切換到root賬戶的權限
#chmod u+w /etc/sudoers #echo "xxx ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers #chmod u-w /etc/sudoers
敲入 sudo su -s,即可