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 docker
3、使用 Docker 运行 CentOS 镜像:
可以从 Docker Hub 上拉取 CentOS 的官方镜像,并在本地运行,拉取 CentOS 7 的镜像并运行一个容器:

- sudo docker pull centos:7
- sudo docker run it centos:7 /bin/bash
Dockerfile 编写示例
以下是一个简单的 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 的强大之处在于其可移植性和灵活性,使得软件开发和部署变得更加高效和便捷。