【利用K8S技术栈打造我的私有云系列文章目录】docker
注: 本文首发于 My 公众号 CodeSheep ,可 长按 或 扫描 下面的 当心心 来订阅 ↓ ↓ ↓
任何一家云主机厂商提供给用户的主机功能其实讲白了就是一个操做系统基础镜像的运行实例。所以本篇博文将讲解如何在本地构建一个带ssh组件的centos底包镜像并上传到docker hub上供下载使用。编程
注册网址:https://hub.docker.com/
vim
命令行中输入:docker login
c#
docker pull centos
centos
docker run -it centos:latest /bin/bash
bash
yum -y install openssh-server yum -y install openssh-clients
启动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服务应该无错误了ssh
执行命令:vim /etc/ssh/sshd_config
将配置文件中本来UsePAM yes
换成UsePAM no
微服务
执行命令:passwd root
输入两次密码便可
docker commit bf5b84f8e2d8 docker.io/hansonwang/centos7.4_ssh
(1)注意此处的bf5b84f8e2d8即为刚才运行的容器的id,可用docker ps -a查看
(2)注意此处的commit格式,必须为docker.io/<你的dockerhub用户名>/centos7.4_ssh
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
此时会让你输入密码,而后成功登入容器之中:
做者更多的SpringBt实践文章在此:
若是有兴趣,也能够抽点时间看看做者一些关于容器化、微服务化方面的文章: