最全的docker安装笔记,包含CentOS和Ubuntu

安装docker

CentOS-stream10下安装

网络环境检查

确保服务器可访问外网,执行以下命令测试网络连通性:

shell 复制代码
ping mirrors.aliyun.com

前置条件

1.1 系统要求
  • 操作系统:CentOS Stream 9 (x86_64)
  • 内核版本:≥ 3.10(建议 ≥ 4.18)
  • 权限<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">sudo</font><font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">root</font> 用户权限

安装流程

1)官方文档

安装下载或查看docker相关资料,可以访问docker官网。

:::tips www.docker.com/

:::

2)卸载旧版本

shell 复制代码
sudo dnf remove -y docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine
或
sudo dnf remove -y docker* containerd* runc

3)安装依赖工具库

shell 复制代码
sudo dnf install -y dnf-plugins-core yum-utils device-mapper-persistent-data lvm2
组件 作用
yum-utils 提供yum-config-manager工具
device-mapper-persistent-data 存储驱动依赖
lvm2 逻辑卷管理支持
dnf-plugins-core 用于管理仓库

4)****配置 Docker 仓库(推荐 国内镜像源

阿里云镜像源

shell 复制代码
sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

清华大学镜像源

shell 复制代码
sudo dnf config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

验证仓库

执行 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">sudo dnf repolist</font> 确认 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">docker-ce</font> 仓库已加入。

**5) **安装 Docker 引擎

shell 复制代码
sudo dnf install -y --allowerasing  docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

参数说明:

:::success

  • <font style="color:rgb(24, 24, 24);background-color:rgb(240, 240, 240);">--allowerasing</font>:允许覆盖冲突包
  • 组件包含:Docker引擎、CLI工具和容器运行时

:::

关键提示:

:::success

  • 安装过程中会提示验证 GPG 密钥,确认指纹匹配:

    060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35

  • 安装组件说明:

docker-ce:Docker 引擎核心

docker-ce-cli:Docker 命令行客户端

containerd.io:容器运行时

docker-buildx-plugin:构建多平台镜像

docker-compose-plugin:Docker Compose 集成

:::

6)****启动 Docker 服务并设置开机自启

bash 复制代码
sudo systemctl start docker      # 启动服务
sudo systemctl enable docker     # 设置开机自启
sudo systemctl status docker     # 检查状态(应显示 "active (running)")

**7) **配置镜像加速器(解决拉取慢问题)

编辑 Docker 配置文件

bash 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://ccr.ccs.tencentyun.com",
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com",
    "https://docker.1ms.run",
    "https://docker.m.daocloud.io",
    "https://docker.rainbond.cc",
    "https://docker.nju.edu.cn"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

:::success 重要更新<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">registry.docker-cn.com</font> 已停止维护,请优先使用 **<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">docker.mirrors.ustc.edu.cn</font>** **<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">hub-mirror.c.163.com</font>**

:::

重启 Docker 生效:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

8) 验证安装

bash 复制代码
sudo docker run hello-world

:::success 成功输出
<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">Hello from Docker!</font> 说明 Docker 服务正常运行。

:::

  1. 配置用户权限(避免每次 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">sudo</font>
bash 复制代码
sudo usermod -aG docker $USER    # 将当前用户加入 docker 组
newgrp docker                    # 刷新当前 shell 的组权限

:::success 验证 :执行 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">docker ps</font> 无需 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">sudo</font> 即可运行。

:::

常见问题解决

1、连接 Docker 守护进程失败

现象<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">Cannot connect to the Docker daemon</font>
解决

  1. 确认 Docker 服务已启动:<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">sudo systemctl status docker</font>
  2. 重启网络与 Docker:
bash 复制代码
sudo systemctl restart NetworkManager && sudo systemctl restart docker
防火墙端口冲突(如需暴露 2375 端口)

解决

bash 复制代码
sudo firewall-cmd --permanent --add-port=2375/tcp
sudo firewall-cmd --reload

:::success 云服务器额外步骤 :在云平台(如阿里云、腾讯云)的安全组规则中放行 2375 端口

:::

GPG 密钥验证失败

解决

手动导入密钥:

bash 复制代码
sudo rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

重新执行安装命令

关键配置说明

配置项 作用
<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">/etc/docker/daemon.json</font> 核心配置文件,定义镜像加速器、日志驱动等关键参数
<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">docker buildx</font> 支持多平台构建(如 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">docker buildx build --platform linux/amd64</font>
<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">docker compose</font> 集成 Compose 功能,无需单独安装 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">docker-compose</font> 命令

一键安装脚本

bash 复制代码
#!/bin/bash
# 卸载旧版本
echo "卸载旧版Docker..."
sudo yum remove -y docker* containerd* runc

# 安装依赖
echo "安装依赖工具..."
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 配置镜像源
echo "配置阿里云镜像源..."
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 安装Docker
echo "安装Docker核心组件..."
sudo yum install -y --allowerasing docker-ce docker-ce-cli containerd.io

# 启动服务
echo "启动Docker服务..."
sudo systemctl enable --now docker

# 验证安装
echo "验证安装结果..."
docker --version
docker run --rm hello-world || echo "首次运行可能需下载镜像,请重试"

echo "Docker安装完成!"

执行权限设置:

bash 复制代码
chmod +x install_docker.sh
sudo ./install_docker.sh

完全卸载流程

bash 复制代码
sudo systemctl stop docker
sudo yum remove -y docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker

Ubunut下安装

准备工作

准备工作

在开始安装前,请确保:

  • 使用的是 Ubuntu 系统(本教程适用于 Ubuntu 16.04 及以上版本)
  • 拥有 sudo 权限或 root 用户权限
  • 能够访问互联网
卸载旧版本(如有)

为避免版本冲突,建议先卸载系统中可能存在的旧版本 Docker:

bash 复制代码
sudo apt remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
或
sudo apt remove -y docker* containerd* runc

如果这是首次安装 Docker,系统中可能没有这些旧版本,但执行此命令可以确保环境的清洁。

安装必要的依赖包
bash 复制代码
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
添加阿里云Docker GPG密钥
bash 复制代码
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
配置阿里云APT源
bash 复制代码
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新系统索引包
bash 复制代码
sudo apt update
sudo apt-get update
安装 docker 核心组件
bash 复制代码
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
启动 docker
bash 复制代码
sudo service docker start
验证安装结果
bash 复制代码
# 检查Docker版本信息
sudo docker version

# 查看Docker服务状态
sudo systemctl status docker

# 设置Docker开机自启
sudo systemctl enable docker
配置用户权限及工具
安装命令自动补全
bash 复制代码
# 安装bash补全功能
sudo apt-get install -y bash-completion
 
# 下载Docker命令补全脚本
sudo curl -L https://raw.githubusercontent.com/docker/docker-ce/master/components/cli/contrib/completion/bash/docker -o /etc/bash_completion.d/docker.sh
 
# 立即生效
source /etc/bash_completion.d/docker.sh
配置用户组权限
bash 复制代码
# 创建docker用户组(如果不存在)
sudo groupadd docker
 
# 将当前用户加入docker组
sudo usermod -aG docker $USER
 
# 刷新用户组权限
newgrp docker
 
# 验证权限配置(应该能看到容器列表)
docker ps -a
生效配置
bash 复制代码
# 将组创建命令添加到.bashrc,避免新终端需要重新执行newgrp
echo "groupadd -f docker" >> ~/.bashrc

配置镜像加速器(解决拉取慢问题)

编辑 Docker 配置文件

bash 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
     "https://docker.1panel.live",
    "https://docker.1ms.run",
    "https://ccr.ccs.tencentyun.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://dytt.online",
    "https://666860.xyz",
    "https://docker.xiaogenban1993.com",
    "https://docker-0.unsee.tech",
    "http://hub-mirror.c.163.com",
    "https://lispy.org",
    "https://hub.rat.dev",
    "https://docker.m.daocloud.io",
    "https://docker.rainbond.cc",
    "https://docker.nju.edu.cn"
  ],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  }
}
EOF

docker

:::success 重要更新<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">registry.docker-cn.com</font> 已停止维护,请优先使用 **<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">docker.mirrors.ustc.edu.cn</font>** **<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">hub-mirror.c.163.com</font>**

:::

重启 docker 服务
bash 复制代码
# 重新加载系统守护进程
sudo systemctl daemon-reload
 
# 重启Docker服务使配置生效
sudo systemctl restart docker
 
# 确认服务状态正常
sudo systemctl status docker
相关推荐
颜酱2 小时前
队列练习系列:从基础到进阶的完整实现
javascript·后端·算法
何中应2 小时前
vi编辑器使用
linux·后端·操作系统
何中应2 小时前
Linux进程无法被kill
linux·后端·操作系统
何中应2 小时前
rm-rf /命令操作介绍
linux·后端·操作系统
何中应2 小时前
Nginx转发请求错误
前端·后端·nginx
海老豹6662 小时前
99元/年!不翻墙不装App,用企业微信把AI塞进个人微信的终极方案
后端
何中应2 小时前
Linux常用命令
linux·操作系统
Assby2 小时前
关于 Java 中的线程顺序控制:三种实战方案(join / CountDownLatch / CompletableFuture)
后端