CentOS下Docker鏡像制作


命令行中登錄到docker hub

命令行中輸入:docker login

 
docker login

制作centos7.4鏡像

1、第一步:去遠端拉取一個最新的centos最基礎鏡像,基於此鏡像來制作

docker pull centos

2、第二步:啟動該docker容器

docker run -it centos:latest /bin/bash

3、第三步:在啟動的容器中來安裝sshd

yum -y install openssh-server
yum -y install openssh-clients

4、第四步:我們來嘗試啟動一下sshd服務,會發現有報錯

啟動sshd服務命令: /usr/sbin/sshd -D
報如下錯誤:

Could not load host key: /etc/ssh/ssh_host_rsa_key Could not load host key: /etc/ssh/ssh_host_ecdsa_key Could not load host key: /etc/ssh/ssh_host_ed25519_key 

我們來解決以上錯誤:

ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ""
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ""
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""

此時再次來啟動sshd服務應該無錯誤了

5、第五步:編輯sshd_config配置文件

執行命令:vim /etc/ssh/sshd_config
將配置文件中原本UsePAM yes換成UsePAM no

6、第六步:修改root的密碼

執行命令:passwd root
輸入兩次密碼即可

7、第七步:我們用exit命令來退出容器

8、第八步:基於剛退出的容器我們來制作帶ssh功能的centos鏡像

docker commit bf5b84f8e2d8 docker.io/XXXXXXXXX/centos7.4_ssh

(1)注意此處的bf5b84f8e2d8即為剛才運行的容器的id,可用docker ps -a查看

(2)注意此處的commit格式,必須為docker.io/<你的dockerhub用戶名>/centos7.4_ssh


push鏡像到遠端

docker push docker.io/XXXXXXXX/centos7.4_ssh:latest

同樣需要注意此處的push格式,必須為docker.io/<你的dockerhub用戶名/完整的鏡像名

如下圖所示:

 
docker push

同時我們去docker hub上也能看到我們剛push的鏡像:

 
Repositories

效果驗證

為了驗證鏡像確實被推到遠端,我們將本地剛打包好的鏡像刪除,然后從遠端pull下來運行看看

docker pull hansonwang/centos7.4_ssh

可以成功pull下來:

 
重新pull鏡像

我們來測試一下該鏡像里是否包含有ssh組件:運行其並用ssh連接到容器中:
運行容器:docker run -d -p 2222:22 docker.io/hansonwang/centos7.4_ssh:latest /usr/sbin/sshd -D
ssh接入:ssh root@localhost -p 2222
此時會讓你輸入密碼,然后成功登入容器之中:

 
ssh接入centos容器




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM