您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何創建支持SSH服務的Docker鏡像”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何創建支持SSH服務的Docker鏡像”這篇文章吧。
(1) 首先以交互的方式運行我們本地的ubuntu容器
docker run -it ubuntu:14.04 /bin/bash
(2) 嘗試使用sshd命令,會發現容器中沒有安裝該服務。
sshd bash: sshd: command not found
(3) 使用apt包管理器安裝openssh-server
apt-get update apt-get install openssh-server
(4) 安裝和配置SSH服務
要正常啟動SSH服務,需要目錄/var/run/sshd存在,手動創建它,并啟動服務:
mkdir -p /var/run/sshd /usr/sbin/sshd -D &
此時查看容器的22端口(SSH服務器默認監聽的端口),已經處于監聽狀態:
(5) 修改SSH服務的安全登陸配置
在遠端客戶端機器(即,非容器機器)執行命令 ssh-keygen -t rsa 生成rsa的公私密鑰對,然后把公鑰的信息拷貝到運行ubuntu容器機器的授權文件中:
mkdir /root/.ssh vi /root/.ssh/authorized_keys # 粘貼客戶端的公鑰信息
(6) 創建自啟動SSH服務的可執行文件run.sh
vi /run.sh chmod +x /run.sh
腳本內容如下:
#!/bin/bash /usr/sbin/sshd -D
(7) 最后退出容器,并將當前修改后的容器保存為一個新的鏡像
在宿主主機執行命令 docker ps -a 查看容器的運行狀態,可以得到剛才退出容器的container id,記住id前三位。
然后執行提交命令,保存新的鏡像:
docker commit $(container id前三位) ubuntu_sshd_gerry:14.04
此命令提交后,會生成一個新的鏡像id*(image id)和新的鏡像 ubuntu_sshd_gerry:14.04(支持ssh服務的ubuntu鏡像)
最后,可以使用 docker images 查看本地的鏡像是否已經包含我們新創建的鏡像 ubuntu_sshd_gerry:14.04。
(8) 使用新鏡像和配置端口映射
啟動容器,并添加端口映射 10022(宿主主機端口)---> 22(容器內部SSH服務監聽端口):
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)
以上是“如何創建支持SSH服務的Docker鏡像”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。