SSH遠程連接宿主服務(wù)器Docker容器

參考:
https://www.cnblogs.com/chenqionghe/p/9988566.html
https://blog.csdn.net/qq_36850813/article/details/90081562

建議采用Dockerfile文件的方式來新建具備SSH的鏡像

(1) 創(chuàng)建一個Dockerfile文件

vim Dockerfile

在某個目錄下創(chuàng)建一個Dockerfile文件,然后輸入如下內(nèi)容并保存?;诋斍扮R像添加SSH功能。

# 生成的新鏡像以nvidia/cuda:10.1-cudnn7-devel-centos7-mmdet-env鏡像為基礎(chǔ)
FROM nvidia/cuda:10.1-cudnn7-devel-centos7-mmdet-env

MAINTAINER by C.J. Sun

# 安裝openssh-server 修改root密碼為88888888
RUN yum install -y passwd && \
yum install -y openssh-server  ssh-keygen && \
echo '88888888' | passwd root --stdin

#創(chuàng)建ssh-keygen創(chuàng)建相關(guān)的ssh文件,-q的意思是靜默模式(就是默認是需要讓你回車輸入的,加上這個直接跳過)
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" -q && \
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" -q && \
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N "" -q

#RUN systemctl enable sshd
# 開啟sshd服務(wù),并用tail來前臺執(zhí)行阻止docker容器退出 
CMD /usr/sbin/sshd && tail -f /var/log/wtmp

(2) 重新創(chuàng)建鏡像

Dockerfile目錄下執(zhí)行如下,例如

docker build -t nvidia-cuda:centos_ssh .

其中nvidia-cuda:centos_ssh為新的鏡像。注意最后面的點不要忘了,表明是讀取當前目錄的Dockerfile文件。
創(chuàng)建成功的話會出現(xiàn)下面的提示,可能時間會有點長,耐心等待。

Successfully built 2d548392b205

(3) 基于新建鏡像運行容器

docker run --name centos_ssh -p 2222:22 -it nvidia-cuda:centos_ssh 

后臺啟動一個容器,將該容器名稱設(shè)置為:centos_ssh,將容器端口22映射到宿主機端口2222。

(4) 宿主服務(wù)器ssh訪問測試

ssh root@127.0.0.1 -p 2222
root@127.0.0.1's password:
Last login: Tue Nov 20 04:10:17 2018 from 172.17.0.1

這里使用了2222端口來映射容器里的22端口,運行起來就可以使用ssh連接了,輸出設(shè)置好的88888888密碼,注意,這里用的是2222映射的端口。

(5) 遠程ssh訪問宿主服務(wù)器并實現(xiàn)docker的訪問

遠程通過xshell或者MobaXterm實現(xiàn)訪問,訪問host設(shè)置為宿主服務(wù)器的ip,端口設(shè)置為容器22在宿主機的映射端口即可,如上述例子中設(shè)置為2222。

(6) 對于新鏡像重新啟動容器

如果啟動出現(xiàn)問題,建議使用

docker run --gpus all --name centos_mmdet_ssh -itd -p 2222:22 --privileged=true nvidia/cuda:centos-mmdet-env-ssh /usr/sbin/init

備注: sshd重啟命令

如果連接出現(xiàn)問題可以對sshd進行重啟
Redirecting to /bin/systemctl restart ssh.service
Failed to restart ssh.service: Unit not found.
service ssh restart是centos 6的命令。centos 7的命令應(yīng)該是:

systemctl restart sshd
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 《Docker從入門到實踐》閱讀筆記 原書地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo閱讀 11,655評論 1 39
  • 0x01 核心概念 Docker鏡像類似于虛擬機鏡像,可以理解為一個面向Docker引擎的只讀模板,包含了文件系統(tǒng)...
    閑云逸心閱讀 4,974評論 0 9
  • Docker與Kvm的對比 kvm: 虛擬機 使用復雜 啟動過程相對慢(分鐘) 模版文件較大 和物理完全隔離 模擬...
    WickJohn閱讀 575評論 0 0
  • Docker簡介Docker是一個由GO語言寫的程序運行的“容器”; 目前云服務(wù)的基石是操作系統(tǒng)級別的隔離,在同一...
    gakiww閱讀 654評論 0 0
  • 紀念知識青年插隊下放50周年。 二十.幸福在彼岸 七八年春,我巳回城插店二周年,我繼續(xù)在竹材部開票司帳。我仍舊同我...
    警鐘長鳴是我閱讀 364評論 0 2

友情鏈接更多精彩內(nèi)容