最全的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
相关推荐
tangwangbi2 小时前
Linux 系统配置文件:/etc/profile、~/.bashrc 和 ~/.bash_profile 三者之间的区别与作用
linux·运维·bash
步行cgn2 小时前
YAML 的语法规则
spring boot·后端
蜀道山老天师2 小时前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash
Mr.朱鹏2 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
骇客野人2 小时前
SpringBoot电商系统用户注册、登录、留存及数据埋点设计与落地实施方案
java·spring boot·后端
mengge.cloud3 小时前
存储技术基础小白教程
linux·运维·服务器·wpf·存储
tang777893 小时前
反爬虫场景下代理IP池的动态扩容与失效IP自动清理方案实现
linux·服务器·网络·爬虫代理·住宅代理ip
新时代牛马4 小时前
Linux 系统调用与IPC 完整篇:从syscall 入口、VDSO 到pipe/shm/futex 选型
linux·运维·服务器
IT_陈寒5 小时前
React的状态更新坑得我差点加班到天亮
前端·人工智能·后端
fpcc6 小时前
计算机原理—Linux是如何加载可执行文件到内存
linux