利用K8S技術(shù)棧打造個(gè)人私有云(連載之:基礎(chǔ)鏡像制作與實(shí)驗(yàn))

封面圖片

【利用K8S技術(shù)棧打造個(gè)人私有云系列文章目錄】

注: 本文原載于 My Personal Blog:CodeSheep · 程序羊


任何一家云主機(jī)廠商提供給用戶的主機(jī)功能其實(shí)講白了就是一個(gè)操作系統(tǒng)基礎(chǔ)鏡像的運(yùn)行實(shí)例。因此本篇博文將講解如何在本地構(gòu)建一個(gè)帶ssh組件的centos底包鏡像并上傳到docker hub上供下載使用。


docker hub注冊(cè)

注冊(cè)網(wǎng)址:https://hub.docker.com/

Docker Hub

命令行中登錄到docker hub

命令行中輸入:docker login

docker login

制作centos7.4鏡像

1、第一步:去遠(yuǎn)端拉取一個(gè)最新的centos最基礎(chǔ)鏡像,基于此鏡像來(lái)制作

docker pull centos

2、第二步:?jiǎn)?dòng)該docker容器

docker run -it centos:latest /bin/bash

3、第三步:在啟動(dòng)的容器中來(lái)安裝sshd

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

4、第四步:我們來(lái)嘗試啟動(dòng)一下sshd服務(wù),會(huì)發(fā)現(xiàn)有報(bào)錯(cuò)

啟動(dòng)sshd服務(wù)命令: /usr/sbin/sshd -D
報(bào)如下錯(cuò)誤:

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

我們來(lái)解決以上錯(cuò)誤:

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 ""

此時(shí)再次來(lái)啟動(dòng)sshd服務(wù)應(yīng)該無(wú)錯(cuò)誤了

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

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

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

執(zhí)行命令:passwd root
輸入兩次密碼即可

7、第七步:我們用exit命令來(lái)退出容器

8、第八步:基于剛退出的容器我們來(lái)制作帶ssh功能的centos鏡像

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

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

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


push鏡像到遠(yuǎn)端

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

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

如下圖所示:

docker push

同時(shí)我們?nèi)ocker hub上也能看到我們剛push的鏡像:

Repositories

效果驗(yàn)證

為了驗(yàn)證鏡像確實(shí)被推到遠(yuǎn)端,我們將本地剛打包好的鏡像刪除,然后從遠(yuǎn)端pull下來(lái)運(yùn)行看看

docker pull hansonwang/centos7.4_ssh

可以成功pull下來(lái):

重新pull鏡像

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

ssh接入centos容器

后記

由于能力有限,若有錯(cuò)誤或者不當(dāng)之處,還請(qǐng)大家批評(píng)指正,一起學(xué)習(xí)交流!



最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。