1. 運行某鏡像以啟動容器
docker run -it -p 127.0.0.1:5000:22 c7fe6d9267f8 /bin/bash
-p 為指定端口, 127.0.0.1 為映射到的物理載體機的IP, 5000 為物理載體機的IP, 22 為容器的端口。
上面的命令運行容器后,將容器的22端口映射到物理實體機的 127.0.0.1:5000 上。
如果物理機有多個網卡,多個網段的話,指定物理機的IP可能比較麻煩,可以使用下面命令:
docker run -it -p 5000:22 c7fe6d9267f8 /bin/bash
5000 為物理機的ip端口,這里不限定物理機的那個IP地址。
22 為容器的端口。
2. 啟動容器后,更新源
apt-get update
3. 在容器上安裝並配置ssh 服務
進入容器后,ssh登錄 物理載體機,報錯
說明,ssh服務沒有完全安裝或啟動。
安裝 ssh server :
apt-get install openssh-server
發現已經安裝,需要啟動服務。
啟動容器的ssh服務:
啟動sshd:
/usr/sbin/sshd -D &
然后更改密碼:
passwd
物理機上 ssh 登入容器,成功。
ssh -p 5000 root@192.168.11.206
4. 編寫 sshd 啟動腳本,以便以后使用。
#!/bin/bash /usr/sbin/sshd -D &
把此時的容器保存回鏡像后可以:
這樣的話,如果將該容器保存回鏡像后,用命令:
docker run -it -p 5000:22 9e808f1164ab /bin/bash
運行容器的話,進入容器后 執行 /sshd.sh 文件就可以開啟sshd 服務。
也可以直接運行:
-------------------------------------------------
將容器保存為鏡像:
sudo docker commit 914ce23e23d5 new_pytorch:v0
查看現有倉庫 鏡像, 新生成的鏡像可見,成功生成:
進入容器后,手動啟動sshd服務。
---------------------------------------------------------------
需注意的是:
如果使用命令
docker run -it -p 5000:22 new_pytorch:v0 /sshd.sh
來運行容器的話,要求鏡像中的 /sshd.sh 文件內容為:
#!/bin/bash /usr/sbin/sshd -D
如果是:
#!/bin/bash /usr/sbin/sshd -D &
那么容器會直接把sshd服務掛到后台,然后容器退出運行狀態,從而終止掉。
----------------------------------------------------
參考:
https://www.cnblogs.com/ruanqj/p/7374544.html
如果配置 ssh 報錯,參照: