在docker 容器開啟ssh , 並映射22端口到物理載體機上以使外網訪問


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 啟動腳本,以便以后使用。

vim /sshd.sh
#!/bin/bash
/usr/sbin/sshd -D &

 

chmod 755 /sshd.sh
 
 
 

 

 

 

 

 

 

 

 

把此時的容器保存回鏡像后可以:

這樣的話,如果將該容器保存回鏡像后,用命令:

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 報錯,參照:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM