由於工作需要,要遠端連線container,本地機器是windows,以下為解決步驟:
1. 環境
本地:Windows
↓
docker版本1.12
↓
遠程:docker中的Container(Ubuntu)
2. Container安裝ssh服務
首先進入Container,進行以下步驟:
① 安裝ssh
sudo apt-get install openssh-server #安裝ssh伺服器service ssh status # 查看ssh服務啟動情況service ssh start # 啟動ssh服務
② 配置ssh,允許root登陸
vi /etc/ssh/sshd_config將PermitRootLogin的值從withoutPassword改為yes
③ 重啟ssh服務
service ssh restart # 重啟動ssh服務
3. 儲存Container鏡像
另外開啟Docker Quickstart Terminal,儲存鏡像
docker ps #查看正在啟動並執行container**找到所要儲存的container的container id,假設為xxxxxx**docker commit xxxxxxxx tomjerry/foobar(註:tomjerry/foobar為要儲存的新鏡像的名字,可任意寫)
4. 重新運行Container
docker run -it -p 50001:22 tomjerry/foobar /bin/bash
service ssh start
注意-p 50001:22這句,意思是將docker的50001連接埠和container的22連接埠綁定,這樣訪問docker的50001等價於訪問container的22連接埠
5. ssh串連container
你可以用xshell或putty等ssh用戶端工具串連container
首先假設各方的ip如下:
本地windows ip: 192.168.99.1docker ip:192.168.99.100container ip:172.17.0.3
那麼,你要遠程container,則要訪問以下地址:
ssh 192.168.99.100:50001
這樣通過訪問docker的50001連接埠,就神奇的間接連通到container的22連接埠了,從而達到ssh串連container的目的,至此。