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 的强大之处在于其可移植性和灵活性,使得软件开发和部署变得更加高效和便捷。