在 CentOS 上完整安装 Docker 指南
在 CentOS 上完整安装 Docker 指南:从入门到避坑
前言
Docker 是一个开源的应用容器引擎,它允许开发者将应用及其依赖打包到一个轻量级、可移植的容器中,从而实现快速交付和部署。本文将详细介绍在 CentOS 系统上安装 Docker 的完整步骤,并针对国内网络环境提供优化的解决方案。
先决条件
- 一台运行 CentOS 7 或 CentOS 8(或更高版本,如 CentOS Stream)的服务器或虚拟机。
- 拥有
sudo
权限的用户账户。 - 稳定的互联网连接。
方法一:使用国内镜像源安装(推荐方案)
这是最适合国内网络环境的安装方法,使用阿里云或清华大学镜像源,可以避免绝大多数网络超时和连接重置问题。
步骤 1: 卸载旧版本
如果系统上存在旧的 Docker 版本,请先卸载它们以确保环境干净。
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
步骤 2: 安装依赖工具
安装 yum-utils
包,它提供了 yum-config-manager
工具,用于管理 Yum 仓库。
sudo yum install -y yum-utils
步骤 3: 添加国内 Docker 镜像源
任选以下一个镜像源添加即可:
-
阿里云镜像源(推荐):
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-
清华大学镜像源:
sudo yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
步骤 4: 更新 Yum 缓存并安装 Docker
添加仓库后,更新缓存并从新仓库安装 Docker Engine(社区版)、CLI 和 Containerd。
# 更新 Yum 缓存
sudo yum makecache fast# 安装 Docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
步骤 5: 启动并设置开机自启
安装完成后,启动 Docker 服务并将其配置为在系统启动时自动运行。
# 启动 Docker 服务
sudo systemctl start docker# 设置开机自动启动
sudo systemctl enable docker
步骤 6: 验证安装
通过运行经典的 hello-world
镜像来验证 Docker 是否已正确安装和运行。
sudo docker run hello-world
如果看到 “Hello from Docker!” 的欢迎信息,则表示安装成功!
方法二:使用官方源安装(供参考)
如果您的网络可以顺畅访问国际网络,可以使用官方源进行安装。步骤与方法一类似,只需将第 3 步的仓库地址替换为官方地址:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
注意: 在国内网络环境下,此步骤很可能出现类似 [Errno 14] curl#35 - "TCP connection reset by peer"
的错误。如果遇到此错误,请直接切换至上述的方法一。
安装后配置
1. 免 sudo 执行 Docker 命令(重要)
默认情况下,运行 Docker 命令需要 sudo
权限。为了避免每次输入 sudo
,可以将您的用户加入 docker
用户组。
# 将当前用户添加到 docker 用户组
sudo usermod -aG docker $USER# 应用新的组权限(需要重新登录或重启系统才能生效)
newgrp docker
重要: 执行完上述命令后,您需要完全退出当前 SSH 会话并重新登录,或者直接重启系统,权限更改才会生效。之后您就可以直接运行 docker
命令了。
# 验证是否无需 sudo
docker run hello-world
2. 安装 Docker Compose
Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。虽然上述命令可能已安装插件版,您也可以选择手动安装独立版本的 Compose。
从 GitHub 下载最新的稳定版本并安装:
# 下载 Docker Compose(请查看 GitHub Release 页面替换为最新版本号)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 授予可执行权限
sudo chmod +x /usr/local/bin/docker-compose# 验证安装
docker-compose --version
# 或使用插件版命令
docker compose version
常见问题与解决方案 (Q&A)
Q1: 执行命令时出现 [Errno 14] curl#35 - "TCP connection reset by peer"
错误怎么办?
A: 这是典型的网络连接问题。请放弃使用官方源,直接按照本文的方法一,切换至阿里云或清华大学的国内镜像源。
Q2: 添加了国内源但仍然很慢或出错?
A: 可以手动编辑 repo 文件,确保所有链接都已替换为国内地址。
sudo vi /etc/yum.repos.d/docker-ce.repo
检查并将文件中的 https://download.docker.com
全部替换为 http://mirrors.aliyun.com/docker-ce
或 https://mirrors.tuna.tsinghua.edu.cn/docker-ce
。
Q3: 如何查看 Docker 的版本和运行状态?
A:
# 查看 Docker 版本
docker --version# 查看 Docker 系统信息
docker info# 查看 Docker 服务状态
sudo systemctl status docker
Q4: 如何卸载 Docker?
A:
# 卸载 Docker 软件包
sudo yum remove docker-ce docker-ce-cli containerd.io# 删除镜像、容器、卷等资源文件(谨慎操作!会删除所有数据!)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
总结
通过本文的指导,您应该已经成功在 CentOS 系统上安装了 Docker。总结一下关键点:
- 首选国内源:对于国内用户,使用阿里云或清华镜像源是安装成功的关键,能有效避免网络问题。
- 权限管理:记得将用户加入
docker
组,以便无需sudo
即可运行命令。 - 验证安装:最后务必运行
docker run hello-world
来验证所有组件是否正常工作。
现在,您的 Docker 环境已经准备就绪,可以开始拉取镜像、运行容器,探索容器化技术的强大功能了!您可以尝试运行 docker pull nginx
和 docker run -d -p 80:80 nginx
来启动您的第一个 Nginx 容器。