Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是免费的、开源的,并且源自 Red Hat Enterprise Linux (RHEL),在 CentOS 上使用 Docker 能够极大地简化软件部署和开发过程,提高系统的可移植性和可扩展性。
Docker 与 CentOS 的结合
1、安装 Docker:

在 CentOS 上安装 Docker 通常需要先卸载旧版本(如果有),然后添加 Docker 的官方仓库并安装最新版本,具体步骤如下:
# 卸载旧版本
sudo yum remove docker \
dockerclient \
dockerclientlatest \
dockercommon \
dockerlatest \
dockerlatestlogrotate \
dockerlogrotate
# 安装需要的软件包
sudo yum install y yumutils
# 设置稳定存储库
sudo yumconfigmanager addrepo https://download.docker.com/linux/centos/dockerce.repo
# 安装 Docker Engine
sudo yum install dockerce dockercecli containerd.io 安装完成后,可以通过sudo systemctl start docker 启动 Docker 服务,并通过sudo systemctl enable docker 设置开机自启。
2、配置 Docker 镜像加速器:
由于国内网络问题,拉取 Docker 镜像可能会比较缓慢,因此建议配置 Docker 镜像加速器,可以使用阿里云或网易的镜像加速器:
# 配置阿里云镜像加速器
sudo mkdir p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registrymirrors": ["https://<你的加速器地址>"]
}
EOF
sudo systemctl daemonreload
sudo systemctl restart docker3、使用 Docker 运行 CentOS 镜像:
可以从 Docker Hub 上拉取 CentOS 的官方镜像,并在本地运行,拉取 CentOS 7 的镜像并运行一个容器:

sudo docker pull centos:7
sudo docker run it centos:7 /bin/bashDockerfile 编写示例
以下是一个简单的 Dockerfile 示例,用于基于 CentOS 镜像创建一个包含常用软件的自定义镜像:
使用 CentOS 7 作为基础镜像
FROM centos:7
维护者信息
LABEL maintainer="your_email@example.com"
更新并安装常用软件
RUN yum makecache fast && \
yum y update glibc && \
yum install y opensshserver vim tar wget curl rsync bzip2 iptables tcpdump less telnet nettools lsof && \
yum clean all
初始化 SSH
RUN sshkeygen t rsa f /etc/ssh/ssh_host_rsa_key N '' && \
sshkeygen t dsa f /etc/ssh/ssh_host_dsa_key N '' && \
sshkeygen t ecdsa f /etc/ssh/ssh_host_ecdsa_key N '' && \
sshkeygen t ed25519 f /etc/ssh/ssh_host_ed25519_key N '' && \
echo "RSAAuthentication yes" >> /etc/ssh/sshd_config && \
echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config
暴露 SSH 端口
EXPOSE 22
启动 SSH 服务
CMD ["/usr/sbin/sshd", "D"]保存为Dockerfile,然后在包含该文件的目录下运行以下命令构建镜像:
sudo docker build t my_centos_image .
构建完成后,可以使用sudo docker images 查看镜像是否成功创建。
常见问题及解答(FAQs)
问:如何在 CentOS 上卸载 Docker?
答:在 CentOS 上卸载 Docker,可以使用以下命令:
sudo yum remove dockerce dockercecli containerd.io sudo rm rf /var/lib/docker
注意,这也会删除所有本地的容器、镜像、卷以及相关的数据,请谨慎操作。

问:如何在 CentOS 上更改 Docker 的数据根目录?
答:要更改 Docker 的数据根目录,可以编辑或创建/etc/docker/daemon.json 文件,并添加或修改以下内容:
{
"dataroot": "/new/docker/data"
}然后重启 Docker 服务即可:
sudo systemctl daemonreload sudo systemctl restart docker
更改数据根目录后,之前的数据将不会被自动迁移到新的位置,需要手动进行数据迁移。
通过以上步骤和示例,您可以在 CentOS 上顺利安装和使用 Docker,并根据需要进行自定义配置,Docker 的强大之处在于其可移植性和灵活性,使得软件开发和部署变得更加高效和便捷。
