【利用K8S技術(shù)棧打造個(gè)人私有云系列文章目錄】
- 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:初章)
- 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:K8S集群搭建)
- 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:K8S環(huán)境理解和練手)
- 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:基礎(chǔ)鏡像制作與實(shí)驗(yàn))
- 利用K8S技術(shù)棧打造個(gè)人私有云(連載之:資源控制研究)
- 利用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 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用戶名/完整的鏡像名
如下圖所示:
同時(shí)我們?nèi)ocker hub上也能看到我們剛push的鏡像:
效果驗(yàn)證
為了驗(yàn)證鏡像確實(shí)被推到遠(yuǎn)端,我們將本地剛打包好的鏡像刪除,然后從遠(yuǎn)端pull下來(lái)運(yùn)行看看
docker pull hansonwang/centos7.4_ssh
可以成功pull下來(lái):
我們來(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ì)讓你輸入密碼,然后成功登入容器之中:
后記
由于能力有限,若有錯(cuò)誤或者不當(dāng)之處,還請(qǐng)大家批評(píng)指正,一起學(xué)習(xí)交流!