在 Linux 上安装 Docker 完整指南

本文提供 Docker Engine(社区版 Docker CE)在主流 Linux 发行版上的详细安装步骤,包含官方推荐方法、一键安装脚本、安装后配置及镜像加速设置Docker。

一、准备工作

  1. 系统要求
    • 内核版本:3.10+(建议 4.15+),可通过uname -r检查
    • 支持的架构:x86_64 (amd64)、armhf、arm64、s390x、ppc64leDocker
  2. 卸载旧版本(如有)
    bash
    运行
    # Ubuntu/Debian
    sudo apt remove docker docker-engine docker.io containerd runc
    
    # CentOS/RHEL/Fedora
    sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    
    # 清理残留数据(可选,谨慎操作)
    sudo rm -rf /var/lib/docker
    sudo rm -rf /var/lib/containerd
    

二、官方推荐安装方法(按发行版)

1. Ubuntu/Debian 系列(推荐)

bash
运行
# 1. 安装依赖工具
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

# 2. 添加Docker官方GPG密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# 3. 设置Docker软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 4. 安装Docker Engine及插件
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 5. 验证安装
sudo docker run hello-world

2. CentOS/RHEL 系列

bash
运行
# 1. 安装依赖工具(CentOS 7用yum,CentOS 8+用dnf)
sudo dnf install -y dnf-plugins-core  # CentOS 8+/RHEL 8+
# sudo yum install -y yum-utils       # CentOS 7

# 2. 添加Docker官方软件源
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# 3. 安装Docker Engine及插件
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 4. 启动Docker并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 5. 验证安装
sudo docker run hello-world

3. Fedora 系统

bash
运行
# 1. 安装依赖工具
sudo dnf -y install dnf-plugins-core

# 2. 添加Docker官方软件源
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo

# 3. 安装Docker Engine
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 4. 启动服务并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 5. 验证
sudo docker run hello-world

三、一键安装脚本(适合测试 / 开发环境)

官方提供的便捷安装脚本,适合快速部署:
bash
运行
# 下载并执行安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 启动服务(部分系统会自动启动)
sudo systemctl start docker
sudo systemctl enable docker

# 验证
sudo docker run hello-world
⚠️ 注意:此方法仅推荐用于测试和开发环境,生产环境建议使用官方仓库安装方式。

四、安装后配置(重要)

  1. 允许非 root 用户运行 Docker(推荐)
    bash
    运行
    # 创建docker用户组(安装时通常已自动创建)
    sudo groupadd docker
    
    # 将当前用户添加到docker组
    sudo usermod -aG docker $USER
    
    # 重新登录或执行以下命令使更改生效
    newgrp docker
    
    # 验证(无需sudo)
    docker run hello-world
    
  2. 配置国内镜像加速(解决拉取镜像慢问题)
    bash
    运行
    # 创建/编辑配置文件
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": [
        "https://docker.1panel.live",
        "https://docker.1ms.run",
        "https://mirror.ccs.tencentyun.com"
      ]
    }
    EOF
    
    # 重启Docker服务使配置生效
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
    # 验证镜像加速是否生效
    docker info | grep -A 1 "Registry Mirrors"
    
  3. 设置 Docker 开机自启
    bash
    运行
    sudo systemctl enable docker
    

五、常见问题解决

  1. 安装失败
    • 检查网络连接,确保能访问 Docker 官方源
    • 对于国内用户,可改用阿里云镜像源(在添加源步骤替换为https://mirrors.aliyun.com/docker-ce/linux/ubuntu/等)
  2. 权限问题
    • 确保当前用户已加入 docker 组
    • 执行docker ps如提示权限错误,重新登录或执行newgrp docker
  3. Docker 服务无法启动
    • 检查日志:journalctl -u docker.service
    • 确保/var/lib/docker目录权限正确

六、验证安装成功

执行以下命令检查 Docker 版本和运行状态:
bash
运行
# 检查Docker版本
docker version

# 检查Docker服务状态
systemctl status docker

# 运行测试容器
docker run hello-world
如看到 "Hello from Docker!" 的输出,说明 Docker 已成功安装并运行。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。