ssh 直接登錄docker容器的操作方法(不用通過宿主機進入)
若我們想直接通過ssh鏈接docker容器,而不是通過宿主機進入。
1.啟動docker,進入docker容器:
docker exec -it 42d099e3fdca /bin/bash (42d099e3fdca是CONTAINER ID)
2.進入docker后,使用passwd密碼來修改密碼(如提示沒有這個命令行使用yum install passwd安裝):
passwd
xxx密碼
xxx確認密碼3.安裝Openssh(docker 容器中執(zhí)行):
yum -y install openssh-server yum -y install openssh-clients
修改SSH配置文件以下選項,去掉#注釋,將四個選項啟用:
vim /etc/ssh/sshd_config
RSAAuthentication yes #啟用 RSA 認證 PubkeyAuthentication yes #啟用公鑰私鑰配對認證方式 AuthorizedKeysFile .ssh/authorized_keys #公鑰文件路徑(和上面生成的文件同) PermitRootLogin yes #root能使用ssh登錄
重啟ssh服務(wù),并設(shè)置開機啟動,可能報錯,可后面進入從鏡像啟動的新容器進行運行:
service sshd restart chkconfig sshd on
4.退出容器并保存更改:
使用exit命令退出當(dāng)前運行的容器,退出后用于保存的唯一ID,也可不用退出,但不進行操作,直接在另一個終端運行以下commit:
exit
現(xiàn)在我們的容器已經(jīng)被我們改變了,使用 docker commit 命令,將當(dāng)前的容器生成鏡像:
docker commit ffe81683c404 centos6-jdk7:ssh
ffe81683c404: 創(chuàng)建鏡像的容器的ID,就是上面的容器id,也就是我們剛才進入的容器id
centos6-jdk7:ssh: 目標(biāo)鏡像的倉庫名和 tag 信息,冒號前面部分是生成的鏡像的倉庫名字,冒號后面是鏡像tag
創(chuàng)建成功后會返回這個鏡像的 ID 信息,查看鏡像:
docker images
5.啟動新的容器并打通22端口:
將新的鏡像啟動,并將docker服務(wù)器的2222端口映射到容器的22端口上,進入容器啟用映射端口:
docker run -it -p 2222:22 --net host -v $PWD:/home --name my_container 鏡像ID bash /usr/sbin/sshd -p 2222
my_container:創(chuàng)建的新容器名
鏡像ID:前文報錯的鏡像ID
6、然后用ssh 直接登錄docker容器(可以xshell):
ssh root@ip -p 2222 #密碼為前文設(shè)置的密碼
ip: 為宿主主機的ip,而不是docker容器的ip
端口:就是上面的2222
用戶名: root
密碼: 就是上面password部分設(shè)置的密碼
7.關(guān)掉該容器:
在宿主機通過 docker stop 容器id 即可關(guān)閉
啟動容器 docker start 容器id
啟動后,就可以用xshell進行連接。
其它:
1. 進入容器執(zhí)行/usr/sbin/sshd -p 2222,啟動一個端口
2. 容器間可通過該端口ssh登錄,ssh ip -p 12345
3. 如果需要免密,docker run容器時,docker -v /root/.ssh 掛載.ssh目錄
4. 容器間mpirun執(zhí)行,mpirun -np .... --hostfile hosts -mca plm_rsh_args "-p 12345" ./exe
參考文章:ssh 直接登錄docker容器 (SSH連接docker容器)
到此這篇關(guān)于ssh 直接登錄docker容器的操作方法(不用通過宿主機進入)的文章就介紹到這了,更多相關(guān)ssh登錄docker容器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何設(shè)置docker開機自啟動,并設(shè)置容器自動重啟
這篇文章主要介紹了如何設(shè)置docker開機自啟動,并設(shè)置容器自動重啟問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
Docker部署Redis緩存服務(wù)的實現(xiàn)步驟
本文介紹了使用Docker部署Redis緩存服務(wù)的步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-07-07
Docker拉取鏡像失敗解決(connect: connection refused)
最近遇到Docker拉取centos鏡像時報錯,本文主要介紹了Docker拉取鏡像失敗解決(connect: connection refused),具有一定的參考價值,感興趣的可以了解一下2024-07-07
Docker快速部署MinIO對象存儲服務(wù)的最新實戰(zhàn)指南
MinIO作為高性能的云原生對象存儲服務(wù),結(jié)合Docker容器技術(shù)可以快速搭建企業(yè)級存儲系統(tǒng),本文介紹了從零開始的Docker部署全流程,有需要的可以了解下2025-05-05
在 Superset Docker 容器中安裝 MySQL 驅(qū)動的方法
本文介紹了在Apache Superset Docker容器中安裝MySQL驅(qū)動的方法,將詳細介紹兩種2026-04-04
Docker 部署方式(Docker run 和 Docker Compose)下,MySQL 驅(qū)動的完整安裝流程,同時兼顧 Apache Doris
驅(qū)動安裝(適配多數(shù)據(jù)源需求),并提供數(shù)據(jù)庫配置方法和常見注意事項
docker windows10 共享目錄掛載失敗的解決方案
這篇文章主要介紹了docker windows10 共享目錄掛載失敗的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
Docker構(gòu)建Maven+Tomcat基礎(chǔ)鏡像的實現(xiàn)
這篇文章主要介紹了Docker構(gòu)建Maven+Tomcat基礎(chǔ)鏡像的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09

