安装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 服务正常运行。
:::
- 配置用户权限(避免每次
<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>
解决:
- 确认 Docker 服务已启动:
<font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">sudo systemctl status docker</font> - 重启网络与 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