利用K8S技术栈打造个人私有云(连载之:基础镜像制作与实验)


【利用K8S技术栈打造个人私有云系列文章目录】

  • 利用K8S技术栈打造个人私有云(连载之:初章)
  • 利用K8S技术栈打造个人私有云(连载之:K8S集群搭建)
  • 利用K8S技术栈打造个人私有云(连载之:K8S环境理解和练手)
  • 利用K8S技术栈打造个人私有云(连载之:基础镜像制作与实验)
  • 利用K8S技术栈打造个人私有云(连载之:资源控制研究)
  • 利用K8S技术栈打造个人私有云(连载之:私有云客户端打造)

注: 本文首发于 My 公众号 CodeSheep ,可 长按扫描 下面的 小心心 来订阅 ↓ ↓ ↓

CodeSheep · 程序羊


任何一家云主机厂商提供给用户的主机功能其实讲白了就是一个操作系统基础镜像的运行实例。因此本篇博文将讲解如何在本地构建一个带ssh组件的centos底包镜像并上传到docker hub上供下载使用。


docker hub注册

注册网址:https://hub.docker.com/


命令行中登录到docker hub

命令行中输入: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/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 hub上也能看到我们刚push的镜像:


效果验证

为了验证镜像确实被推到远端,我们将本地刚打包好的镜像删除,然后从远端pull下来运行看看

docker pull hansonwang/centos7.4_ssh

可以成功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
此时会让你输入密码,然后成功登入容器之中:


后记

  • 作者更多的原创文章在此,欢迎观赏

  • My Personal Blog

作者更多的SpringBt实践文章在此:

  • Spring Boot应用监控实战
  • SpringBoot应用部署于外置Tomcat容器
  • ElasticSearch搜索引擎在SpringBt中的实践
  • 初探Kotlin+SpringBoot联合编程
  • Spring Boot日志框架实践
  • SpringBoot优雅编码之:Lombok加持

如果有兴趣,也可以抽点时间看看作者一些关于容器化、微服务化方面的文章:

  • 利用K8S技术栈打造个人私有云 连载文章
  • 从一份配置清单详解Nginx服务器配置
  • Docker容器可视化监控中心搭建
  • 利用ELK搭建Docker容器化应用日志中心
  • RPC框架实践之:Apache Thrift
  • RPC框架实践之:Google gRPC
  • 微服务调用链追踪中心搭建
  • Docker容器跨主机通信
  • Docker Swarm集群初探
  • 高效编写Dockerfile的几条准则

长按扫描 下面的 小心心 来订阅 CodeSheep,获取更多 务实、能看懂、可复现的 原创文 ↓↓↓

CodeSheep · 程序羊


你可能感兴趣的:(技术分享,Docker,Kubernetes,容器化应用)