佳木斯湛栽影视文化发展公司

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

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

熱門標(biāo)簽:阿里云 智能手機(jī) 使用U盤裝系統(tǒng) 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 硅谷的囚徒呼叫中心 檢查注冊(cè)表項(xiàng) 美圖手機(jī) 網(wǎng)站建設(shè)

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

(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)聽的端口),已經(jīng)處于監(jiān)聽狀態(tài):


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

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

mkdir /root/.ssh

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

(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。


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

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

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

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


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


補(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)

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

標(biāo)簽:賀州 山南 通遼 湘潭 懷化 煙臺(tái) 湖北 黃山

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《創(chuàng)建支持SSH服務(wù)的Docker鏡像的方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    莱阳市| 合山市| 彭州市| 依兰县| 江达县| 广汉市| 八宿县| 景泰县| 陈巴尔虎旗| 余干县| 南城县| 娄底市| 南平市| 东台市| 石河子市| 海晏县| 长丰县| 左贡县| 平度市| 荥经县| 文化| 长岭县| 汶上县| 通辽市| 东海县| 驻马店市| 夏河县| 临夏市| 皮山县| 庆阳市| 安西县| 宜宾市| 闽侯县| 广宗县| 乐亭县| 宣汉县| 德安县| 格尔木市| 丰台区| 平罗县| 定襄县|