你可能想有一台Linux服务器平时练练命令或者其他用途。今天制作了一个Docker镜像,基于目前最新的Centos 8,已经提交到Docker Hub,如下图,可直接拉取使用。镜像内部已经集成了sshd服务,可直接使用ssh登录。
以下步骤均在Mac系统下完成,如果本机尚未安装Docker可参考之前的文章:<<Mac系统docker安装配置及基本使用>>。
1 Centos服务器容器制作及使用
仅需下面前三步,即可得到一个Centos 8 服务器容器。
1.1 获取镜像
终端执行命令如下,拉取镜像到本地。
docker pull crasa/centos8-ssh
1.2 创建容器
根据crasa/centos8-ssh
镜像创建容器,容器名称为centos
,绑定本机端口18022
到容器内部的22
端口(ssh服务端口),完整命令如下:
docker run -itd --privileged -p 18022:22 --name centos crasa/centos8-ssh /usr/sbin/init
1.3 ssh登录
通过上面两步,容器已经创建好,然后可使用ssh通过本机的18022
登录,docker容器内部root
用户默认密码为crane
。
ssh -p 18022 root@localhost
1.4 查看服务器版本
通过上面一步已经进入到了容器内部,可在容器内部通过下面命令查看系统版本。
cat /etc/redhat-release
以上各步骤执行结果如下:
1.5 后续操作
通过上面步骤,一个Centos 8 的Docker容器制作完成,内网可使用ssh登录(内网登录请使用本机内网ip)或者本机使用docker exec
登录。如果练习过程中哪里出了乱子,可以删除容器(docker rm -f centos
),然后重新执行上面几个步骤,一个全新的Centos 8 服务器就又出来了,使用docker的好处就是不管出了什么错,都可以恢复到最初的状态。
2 镜像制作过程
制作上面容器用到的镜像,制作过程的完整命令如下,可在终端窗口按顺序执行,制作一个和crasa/centos8-ssh
完全一致的镜像。
# 拉取centos:8镜像,以此为基础
docker pull centos:8
# 创建容器 名为 centos8.ssh
docker run -itd --privileged --name centos8.ssh centos:8 /usr/sbin/init
# 进入创建的容器
docker exec -it centos8.ssh bash
# 更新软件包,安装ssh服务支持相关包并启动ssh的服务
yum upgrade -y && yum install passwd openssl openssh-server openssh-clients initscripts -y && yum clean all && systemctl start sshd.service && systemctl enable sshd.service
# 修改当前用户 root 的密码
passwd
# 退出当前容器
exit
# 停止容器
docker stop centos8.ssh
# 根据刚才容器创建本地镜像,并将改动提交到本地(c5058a6365d7为容器id,具体根据实际情况而定),镜像名称为 crasa/centos8-ssh
docker commit -m "centos 8 with sshd service, root password is crane" -a "Crane Liu" c5058a6365d7 crasa/centos8-ssh
# 推送本地镜像到已登录账户的 Docker Hub
docker push crasa/centos8-ssh
以上镜像制作过程截图如下: