主頁 > 知識庫 > 創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法

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

熱門標簽:如何分析地圖標注 大連400電話如何申請 電銷機器人價值 撫順地圖標注 高德地圖標注好做嗎 達亞電銷機器人官網(wǎng) 外呼系統(tǒng)坐席費計入會計哪個科目 新余高德地圖標注怎么修改 電銷機器人怎么接線路

摘要:通常Linux系統(tǒng)管理員通過SSH服務(wù)來管理OS,但Docker的很多鏡像是不帶SSH服務(wù)的,可以通過attach(遇到假死的現(xiàn)象)或者exec(目前測試ok)的方法進入容器來管理,但是這些命令都無法解決遠程管理容器的問題,因此,當需要遠程登陸到容器內(nèi)進行一些操作的時候,就需要SSH的支持了。本文記錄如何使用docker commit創(chuàng)建一個帶有SSH服務(wù)的ubuntu鏡像。

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

docker run -it ubuntu:14.04 /bin/bash

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

sshd

bash: sshd: command not found

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

apt-get update


apt-get install openssh-server

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

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

mkdir -p /var/run/sshd

/usr/sbin/sshd -D &

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


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

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

mkdir /root/.ssh

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

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

vi /run.sh

chmod +x /run.sh

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

#!/bin/bash

/usr/sbin/sshd -D

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

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

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

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

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

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


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

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

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

啟動后,可以在宿主主機上看到容器運行的詳細信息:


(9) 在宿主主機,或者其他遠程主機,使用SSH訪問10022端口來登陸容器,測試OK


補充說明:

對一個鏡像打一個新的tag的方法(只是tag不一樣,實際是同一個image,因為image id是一樣的):

docker tag $(image id) ubuntu_sshd_gerry:14.04

然后將老的tag刪除掉:

docker rm $(container id)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

標簽:遼源 楊凌 新鄉(xiāng) 衡水 湖南 南通 黃石 海東

巨人網(wǎng)絡(luò)通訊聲明:本文標題《創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法》,本文關(guān)鍵詞  創(chuàng)建,支持,SSH,服務(wù),的,Docker,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章