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

简介:

封面图片


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


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


docker hub注册

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

Docker Hub


命令行中登录到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/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容器

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
目录
相关文章
|
3月前
|
Kubernetes 容器 Perl
【kubernetes】如何找到k8s内部拉取的镜像
【kubernetes】如何找到k8s内部拉取的镜像
104 1
|
5月前
|
Kubernetes 数据安全/隐私保护 Docker
k8s 拉取镜像报错 no basic auth credentials
k8s 拉取镜像报错 no basic auth credentials
365 0
|
2月前
|
JSON Kubernetes Docker
K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别
K8S 1.20 弃用 Docker 评估之 Docker 和 OCI 镜像格式的差别
|
8月前
|
Dragonfly 缓存 Kubernetes
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
Dragonfly 在 Kubernetes 多集群环境下分发文件和镜像
|
4月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|kubernetes集群使用私有镜像仓库拉取镜像(harbor或者官方的registry私有镜像仓库)
云原生|kubernetes|kubernetes集群使用私有镜像仓库拉取镜像(harbor或者官方的registry私有镜像仓库)
306 0
|
8月前
|
Kubernetes 应用服务中间件 调度
k8s--pod 基本配置、镜像拉取策略、启动命令、端口设置、资源配额
k8s--pod 基本配置、镜像拉取策略、启动命令、端口设置、资源配额
k8s--pod 基本配置、镜像拉取策略、启动命令、端口设置、资源配额
|
4月前
|
Kubernetes 安全 测试技术
Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本
Docker|kubernetes|本地镜像批量推送到Harbor私有仓库的脚本
107 0
|
4月前
|
Kubernetes 安全 Linux
k8s学习-CKS真题-Trivy扫描镜像安全漏洞
k8s学习-CKS真题-Trivy扫描镜像安全漏洞
55 0
|
6月前
|
Kubernetes 网络安全 Docker
快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
414 0
|
7月前
|
缓存 Kubernetes Java
加速 Kubernetes 镜像拉取
加速 Kubernetes 镜像拉取
191 0