ssh 直接登錄docker容器的操作方法(不用通過宿主機(jī)進(jìn)入)
若我們想直接通過ssh鏈接docker容器,而不是通過宿主機(jī)進(jìn)入。
1.啟動(dòng)docker,進(jìn)入docker容器:
docker exec -it 42d099e3fdca /bin/bash (42d099e3fdca是CONTAINER ID)
2.進(jìn)入docker后,使用passwd密碼來修改密碼(如提示沒有這個(gè)命令行使用yum install passwd安裝):
passwd xxx密碼 xxx確認(rèn)密碼
3.安裝Openssh(docker 容器中執(zhí)行):
yum -y install openssh-server yum -y install openssh-clients
修改SSH配置文件以下選項(xiàng),去掉#注釋,將四個(gè)選項(xiàng)啟用:
vim /etc/ssh/sshd_config
RSAAuthentication yes #啟用 RSA 認(rèn)證 PubkeyAuthentication yes #啟用公鑰私鑰配對(duì)認(rèn)證方式 AuthorizedKeysFile .ssh/authorized_keys #公鑰文件路徑(和上面生成的文件同) PermitRootLogin yes #root能使用ssh登錄
重啟ssh服務(wù),并設(shè)置開機(jī)啟動(dòng),可能報(bào)錯(cuò),可后面進(jìn)入從鏡像啟動(dòng)的新容器進(jìn)行運(yùn)行:
service sshd restart chkconfig sshd on
4.退出容器并保存更改:
使用exit命令退出當(dāng)前運(yùn)行的容器,退出后用于保存的唯一ID,也可不用退出,但不進(jìn)行操作,直接在另一個(gè)終端運(yùn)行以下commit:
exit
現(xiàn)在我們的容器已經(jīng)被我們改變了,使用 docker commit 命令,將當(dāng)前的容器生成鏡像:
docker commit ffe81683c404 centos6-jdk7:ssh
ffe81683c404: 創(chuàng)建鏡像的容器的ID,就是上面的容器id,也就是我們剛才進(jìn)入的容器id
centos6-jdk7:ssh: 目標(biāo)鏡像的倉(cāng)庫(kù)名和 tag 信息,冒號(hào)前面部分是生成的鏡像的倉(cāng)庫(kù)名字,冒號(hào)后面是鏡像tag
創(chuàng)建成功后會(huì)返回這個(gè)鏡像的 ID 信息,查看鏡像:
docker images
5.啟動(dòng)新的容器并打通22端口:
將新的鏡像啟動(dòng),并將docker服務(wù)器的2222端口映射到容器的22端口上,進(jìn)入容器啟用映射端口:
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:前文報(bào)錯(cuò)的鏡像ID
6、然后用ssh 直接登錄docker容器(可以xshell):
ssh root@ip -p 2222 #密碼為前文設(shè)置的密碼
ip: 為宿主主機(jī)的ip,而不是docker容器的ip
端口:就是上面的2222
用戶名: root
密碼: 就是上面password部分設(shè)置的密碼
7.關(guān)掉該容器:
在宿主機(jī)通過 docker stop 容器id 即可關(guān)閉
啟動(dòng)容器 docker start 容器id
啟動(dòng)后,就可以用xshell進(jìn)行連接。
其它:
1. 進(jìn)入容器執(zhí)行/usr/sbin/sshd -p 2222,啟動(dòng)一個(gè)端口
2. 容器間可通過該端口ssh登錄,ssh ip -p 12345
3. 如果需要免密,docker run容器時(shí),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容器的操作方法(不用通過宿主機(jī)進(jìn)入)的文章就介紹到這了,更多相關(guān)ssh登錄docker容器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下定時(shí)自動(dòng)備份Docker中所有SqlServer數(shù)據(jù)庫(kù)的腳本
這篇文章主要介紹了Linux下定時(shí)自動(dòng)備份Docker中所有SqlServer數(shù)據(jù)庫(kù)?,編寫shell文件給出一個(gè)備份的范例,在Linux添加定時(shí)任務(wù),通過下列命令來檢測(cè)并安裝這個(gè)服務(wù),需要的朋友可以參考下2022-09-09如何使用Docker Desktop進(jìn)行本地打包和推送
本文給大家介紹如何使用Docker Desktop進(jìn)行本地打包和推送,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-04在docker容器中使用非root用戶執(zhí)行腳本操作
這篇文章主要介紹了在docker容器中使用非root用戶執(zhí)行腳本操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11Windows環(huán)境GeoServer打包Docker的方法實(shí)現(xiàn)
本文介紹了在Windows環(huán)境下將GeoServer打包為Docker鏡像,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12Docker 手動(dòng)配置容器網(wǎng)絡(luò)實(shí)例詳解
這篇文章主要介紹了Docker 手動(dòng)配置容器網(wǎng)絡(luò)實(shí)例詳解的相關(guān)資料,這里有具體實(shí)現(xiàn),需要的朋友可以參考下2016-11-11Docker數(shù)據(jù)存儲(chǔ)之Volumes詳解
今天小編就為大家分享一篇關(guān)于Docker數(shù)據(jù)存儲(chǔ)之Volumes詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-02-02