centOS7上安装docker

centOS7上安装docker

Linux上centOS7安装docker:

1. 系统环境检查与准备

检查内核版本‌:Docker 要求 CentOS 7 的内核版本至少为 ‌3.10

uname -r

如果输出低于 3.10(如 2.6.x),则无法直接安装 Docker,建议升级内核或更换操作系统。

检查系统架构‌:必须是 ‌64位‌ 系统。

uname -m

输出应为x86_64

更新系统包(可选但推荐)‌:

sudo yum update -y

2. 卸载旧版本 Docker

如果系统中曾安装过旧版本的 Docker(通常名为dockerdocker-engine),需要先卸载以避免冲突。

sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine \ docker-selinux \ docker-engine-selinux

注意:如果之前安装过较新的 Docker CE 版本,可能还需要卸载docker-cedocker-ce-clicontainerd.io

3. 配置 Yum 源

由于 CentOS 7 已 EOL,默认的 base 源可能不可用。如果遇到“Cannot find a valid baseurl”错误,需先切换至阿里云 Vault 源,然后添加 Docker 官方源。

A. 修复 CentOS 基础源(如果 yum 报错)
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak sudo wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-7.repo
B. 安装依赖工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • yum-utils:提供yum-config-manager工具。
  • device-mapper-persistent-datalvm2:Docker 存储驱动devicemapper所需的依赖。
C. 添加 Docker 官方仓库

方案一:使用阿里云镜像源(推荐,速度快)

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

方案二:使用 Docker 官方源

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4. 安装 Docker Engine

安装最新版本
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

注:新版 Docker 将 Compose 作为插件集成,因此安装docker-compose-plugin后可直接使用docker compose命令。

安装指定版本(可选)

如果需要安装特定版本(例如为了生产环境稳定性),可以先查看可用版本:

yum list docker-ce --showduplicates | sort -r

然后指定版本安装(例如版本 24.0.7):

sudo yum install -y docker-ce-24.0.7 docker-ce-cli-24.0.7 containerd.io

5. 启动 Docker 并设置开机自启

安装完成后,启动 Docker 服务并设置为开机自动启动。

# 启动 Docker sudo systemctl start docker # 设置开机自启 sudo systemctl enable docker # 验证状态 sudo systemctl status docker

6. 验证安装

运行以下命令检查 Docker 是否正常运行。如果安装成功,将显示 Client 和 Server 的版本信息。

docker version

运行测试容器hello-world来验证功能:

sudo docker run hello-world

如果看到 "Hello from Docker!" 的消息,说明安装成功

7. 配置镜像加速器(推荐)

由于 Docker Hub 在国内访问较慢,建议配置镜像加速器(如阿里云、腾讯云或中科大)。

  1. 创建或编辑配置文件/etc/docker/daemon.json

sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.1ms.run", "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com", "https://mirror.iscas.ac.cn", "https://docker.mirrors.sjtug.sjtu.edu.cn", "https://mirrors.tencent.com/dockerhub/", "https://reg-mirror.qiniu.com", "https://cr.console.aliyun.com" ] } EOF

(注:以上镜像地址为示例,请替换为你实际可用的加速器地址,如阿里云提供的专属地址)

重载配置并重启 Docker:

sudo systemctl daemon-reload sudo systemctl restart docker

验证配置是否生效:

docker info

在输出末尾查找Registry Mirrors字段,确认包含你配置的地址。

常见问题排查

  • 权限问题‌:默认情况下,只有 root 用户或docker组的成员可以运行 Docker 命令。如果想让普通用户免 sudo 运行,可将用户加入 docker 组:

sudo usermod -aG docker $USER

执行后需注销并重新登录才能生效。

  • 防火墙问题‌:如果容器间网络通信异常,可能需要配置防火墙规则或暂时关闭防火墙进行测试:

sudo systemctl stop firewalld sudo systemctl disable firewalld