溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何創(chuàng)建支持SSH服務(wù)的Docker鏡像

發(fā)布時(shí)間:2021-08-21 10:21:26 來(lái)源:億速云 閱讀:122 作者:小新 欄目:服務(wù)器

這篇文章主要為大家展示了“如何創(chuàng)建支持SSH服務(wù)的Docker鏡像”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何創(chuàng)建支持SSH服務(wù)的Docker鏡像”這篇文章吧。

(1) 首先以交互的方式運(yùn)行我們本地的ubuntu容器

docker run -it ubuntu:14.04 /bin/bash

(2) 嘗試使用sshd命令,會(huì)發(fā)現(xiàn)容器中沒(méi)有安裝該服務(wù)。

sshd

bash: sshd: command not found

(3) 使用apt包管理器安裝openssh-server

apt-get update


apt-get install openssh-server

(4) 安裝和配置SSH服務(wù)

要正常啟動(dòng)SSH服務(wù),需要目錄/var/run/sshd存在,手動(dòng)創(chuàng)建它,并啟動(dòng)服務(wù):

mkdir -p /var/run/sshd

/usr/sbin/sshd -D &

此時(shí)查看容器的22端口(SSH服務(wù)器默認(rèn)監(jiān)聽(tīng)的端口),已經(jīng)處于監(jiān)聽(tīng)狀態(tài):

如何創(chuàng)建支持SSH服務(wù)的Docker鏡像

(5) 修改SSH服務(wù)的安全登陸配置

在遠(yuǎn)端客戶(hù)端機(jī)器(即,非容器機(jī)器)執(zhí)行命令 ssh-keygen -t rsa 生成rsa的公私密鑰對(duì),然后把公鑰的信息拷貝到運(yùn)行ubuntu容器機(jī)器的授權(quán)文件中:

mkdir /root/.ssh

vi /root/.ssh/authorized_keys # 粘貼客戶(hù)端的公鑰信息

(6) 創(chuàng)建自啟動(dòng)SSH服務(wù)的可執(zhí)行文件run.sh

vi /run.sh

chmod +x /run.sh

腳本內(nèi)容如下:

#!/bin/bash

/usr/sbin/sshd -D

(7) 最后退出容器,并將當(dāng)前修改后的容器保存為一個(gè)新的鏡像

在宿主主機(jī)執(zhí)行命令 docker ps -a 查看容器的運(yùn)行狀態(tài),可以得到剛才退出容器的container id,記住id前三位。

然后執(zhí)行提交命令,保存新的鏡像:

docker commit $(container id前三位) ubuntu_sshd_gerry:14.04

此命令提交后,會(huì)生成一個(gè)新的鏡像id*(image id)和新的鏡像 ubuntu_sshd_gerry:14.04(支持ssh服務(wù)的ubuntu鏡像)

最后,可以使用 docker images 查看本地的鏡像是否已經(jīng)包含我們新創(chuàng)建的鏡像 ubuntu_sshd_gerry:14.04。

如何創(chuàng)建支持SSH服務(wù)的Docker鏡像

(8) 使用新鏡像和配置端口映射

啟動(dòng)容器,并添加端口映射 10022(宿主主機(jī)端口)---> 22(容器內(nèi)部SSH服務(wù)監(jiān)聽(tīng)端口):

docker run -p 10022:22 -d ubuntu_sshd_gerry:14.04 /run.sh

啟動(dòng)后,可以在宿主主機(jī)上看到容器運(yùn)行的詳細(xì)信息:

如何創(chuàng)建支持SSH服務(wù)的Docker鏡像

(9) 在宿主主機(jī),或者其他遠(yuǎn)程主機(jī),使用SSH訪問(wèn)10022端口來(lái)登陸容器,測(cè)試OK

如何創(chuàng)建支持SSH服務(wù)的Docker鏡像

補(bǔ)充說(shuō)明:

對(duì)一個(gè)鏡像打一個(gè)新的tag的方法(只是tag不一樣,實(shí)際是同一個(gè)image,因?yàn)閕mage id是一樣的):

docker tag $(image id) ubuntu_sshd_gerry:14.04

然后將老的tag刪除掉:

docker rm $(container id)

以上是“如何創(chuàng)建支持SSH服務(wù)的Docker鏡像”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI