利用K8S技術棧打造我的私有云(連載之:基礎鏡像製做與實驗)


【利用K8S技術棧打造我的私有云系列文章目錄】docker

注: 本文首發於 My 公衆號 CodeSheep ,可 長按掃描 下面的 當心心 來訂閱 ↓ ↓ ↓編程

CodeSheep · 程序羊


任何一家雲主機廠商提供給用戶的主機功能其實講白了就是一個操做系統基礎鏡像的運行實例。所以本篇博文將講解如何在本地構建一個帶ssh組件的centos底包鏡像並上傳到docker hub上供下載使用。vim


docker hub註冊

註冊網址:https://hub.docker.com/c#

Docker Hub


命令行中登陸到docker hub

命令行中輸入:docker logincentos

docker login


製做centos7.4鏡像

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

docker pull centosbash

二、第二步:啓動該docker容器

docker run -it centos:latest /bin/bash服務器

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

yum -y install openssh-server
yum -y install openssh-clients
複製代碼

四、第四步: 咱們來嘗試啓動一下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

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服務應該無錯誤了微服務

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

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

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

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

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

八、第八步: 基於剛退出的容器咱們來製做帶ssh功能的centos鏡像

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

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

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


push鏡像到遠端

docker push docker.io/hansonwang/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容器


後記

做者更多的SpringBt實踐文章在此:


若是有興趣,也能夠抽點時間看看做者一些關於容器化、微服務化方面的文章:


CodeSheep · 程序羊
相關文章
相關標籤/搜索