Refinex DevHubRefinex DevHub
DocsBlogProjectsSitesChangelogAbout
Assistant
你好,我可以基于当前页面内容回答问题、提炼重点,或者告诉你下一步应该继续读什么。
  1. Docs›
  2. Docker 安装指南
Overview
Nginx 安装指南
Docker 安装指南
Python 安装指南
Nacos 安装指南
Redis 安装指南
MySQL 安装指南
Maven 安装指南
RocketMQ 安装指南
Homebrew 安装指南
PostgreSQL 安装指南
  1. Docs›
  2. Docker 安装指南

Docker 安装指南

Docker 容器化平台的权威安装指南。涵盖 Linux(CentOS Stream 9)、macOS(Apple Silicon)、Windows 三大平台,包含最佳实践配置与常见问题排查。

基于 Docker 官方文档(docs.docker.com),最后更新:2026-03

一、Linux 安装(CentOS Stream 9)

1.1 环境信息

项目值
发行版CentOS Stream 9(RHEL 系,兼容 rhel fedora)
内核5.15.120-5.ve2.x86_64
架构x86_64
包管理器dnf(YUM 的继任)
Tip

CentOS Stream 9 是 RHEL 9 的上游开发分支,Docker 官方明确支持 CentOS Stream 9 和 CentOS Stream 10。

1.2 前置条件

  • 具有 sudo 或 root 权限的用户
  • 已启用 centos-extras 仓库(默认已启用)
  • 活跃的网络连接
  • 内核版本 ≥ 3.10(当前 5.15 远超要求)

1.3 卸载旧版本

系统可能预装了 Podman 或旧版 Docker(docker、docker-client、docker-engine)。安装前必须清理冲突包:

Bash
sudo dnf remove -y docker \
  docker-client \
  docker-client-latest \
  docker-common \
  docker-latest \
  docker-latest-logrotate \
  docker-logrotate \
  docker-engine \
  podman \
  runc
Warning

卸载旧版不会删除 /var/lib/docker/ 下的镜像、容器、卷和网络数据。

1.4 安装 Docker Engine(推荐:RPM 仓库方式)

Step 1:安装依赖并添加 Docker 官方仓库

Bash
# 安装 dnf 仓库管理插件
sudo dnf -y install dnf-plugins-core
​
# 添加 Docker CE 官方仓库
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

先删除旧的 Docker 官方源:

Bash
rm -f /etc/yum.repos.d/docker-ce.repo

安装阿里云 Docker 源:

Bash
dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

刷新缓存:

Bash
dnf clean all
dnf makecache

Step 2:安装 Docker Engine、CLI 和插件

Bash
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
各包说明
  • docker-ce — Docker Engine 守护进程
  • docker-ce-cli — Docker CLI 命令行工具
  • containerd.io — 容器运行时
  • docker-buildx-plugin — 扩展构建功能(多平台构建)
  • docker-compose-plugin — Docker Compose V2(docker compose 子命令)

如果安装过程中提示 GPG 密钥确认,验证指纹为:

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

Step 3:启动并设置开机自启

Bash
# 启动 Docker 守护进程
sudo systemctl start docker
​
# 设置开机自动启动
sudo systemctl enable docker
​
# 同时启动 containerd
sudo systemctl enable --now containerd

Step 4:验证安装

Bash
# 查看 Docker 版本
docker version
​
# 运行测试容器
sudo docker run hello-world

成功输出 Hello from Docker! 即表示安装完成。

1.5 安装特定版本(可选)

Bash
# 列出可用版本
dnf list docker-ce --showduplicates | sort -r
​
# 安装指定版本(替换 <VERSION_STRING>)
sudo dnf install -y docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

1.6 Linux 安装后配置(Post-Install)

非 root 用户运行 Docker

默认情况下,Docker 守护进程绑定 Unix socket,仅 root 可访问。创建 docker 组并添加用户:

Bash
# 创建 docker 组(安装时可能已自动创建)
sudo groupadd docker
​
# 将当前用户加入 docker 组
sudo usermod -aG docker $USER
​
# 激活组变更(或重新登录)
newgrp docker
​
# 验证无需 sudo
docker run hello-world
安全警告

docker 组等同于 root 权限。仅添加受信任的用户。生产环境考虑使用 Rootless 模式。

配置 Docker 开机自启(systemd)

Bash
sudo systemctl enable docker.service
sudo systemctl enable containerd.service

禁用开机自启:

Bash
sudo systemctl disable docker.service
sudo systemctl disable containerd.service

二、macOS 安装(Apple Silicon M 系列)

2.1 系统要求

要求说明
芯片Apple Silicon(M1/M2/M3/M4/M5)
macOS 版本≥ macOS 12(Monterey)
内存≥ 4 GB(推荐 8 GB+)

2.2 安装 Docker Desktop

方式一:官网下载 DMG(推荐)

  1. 访问 Docker Desktop for Mac (Apple Silicon)
  2. 双击 Docker.dmg,将 Docker 拖入 Applications
  3. 打开 Docker Desktop,完成初始化向导
  4. 终端验证:
Bash
docker version
docker compose version
docker run hello-world

方式二:Homebrew 安装

Bash
brew install --cask docker

安装后从 Launchpad 打开 Docker Desktop 完成初始化。

2.3 Apple Silicon 注意事项

  • Docker Desktop 原生支持 ARM64 架构,运行 ARM64 镜像性能最优
  • 对于仅提供 AMD64 的镜像,Docker 通过 Rosetta 2 进行 x86_64 模拟
  • 启用 Rosetta 加速:Docker Desktop → Settings → General → 勾选 Use Rosetta for x86_64/amd64 emulation on Apple Silicon
  • 多架构构建:使用 docker buildx 同时构建 linux/amd64 和 linux/arm64
Bash
docker buildx build --platform linux/amd64,linux/arm64 -t myapp:latest .

2.4 性能优化

  • VirtioFS:Docker Desktop → Settings → General → 确认启用 VirtioFS(默认开启),比 gRPC FUSE 快 ~2x
  • 资源分配:Settings → Resources → 根据工作负载调整 CPU/Memory
  • 对 I/O 密集型项目,将代码放在容器内而非挂载宿主目录

三、Windows 安装

3.1 系统要求

要求说明
系统版本Windows 10(Build 19045+)/ Windows 11
架构x86_64(AMD64);ARM64 为早期访问
后端WSL 2(推荐)或 Hyper-V
硬件虚拟化BIOS 中启用 VT-x/AMD-V

3.2 前置:启用 WSL 2

以管理员身份打开 PowerShell:

Powershell
# 安装 WSL(默认安装 Ubuntu)
wsl --install
​
# 确认 WSL 版本
wsl --version
​
# 设置 WSL 2 为默认
wsl --set-default-version 2

重启计算机完成 WSL 安装。

3.3 安装 Docker Desktop

  1. 下载 Docker Desktop for Windows (x86_64)
  2. 双击 Docker Desktop Installer.exe
  3. 安装向导中确保勾选 Use WSL 2 instead of Hyper-V
  4. 完成安装后重启
  5. 启动 Docker Desktop,在 PowerShell 中验证:
Powershell
docker version
docker run hello-world

3.4 Windows 注意事项

  • WSL 2 vs Hyper-V:WSL 2 性能更优、资源占用更低,强烈推荐
  • 管理员账户:若安装用户与日常用户不同,需将日常用户加入 docker-users 本地组
  • 防火墙/杀毒软件:部分杀毒软件与 Hyper-V 冲突,若启动失败可将 Docker Desktop 加入排除列表
  • Windows 容器:Docker Desktop 支持 Linux/Windows 容器切换(右键系统托盘图标)

四、通用最佳实践配置(daemon.json)

安装完成后,配置 Docker 守护进程以适应生产环境。

4.1 配置文件位置

平台路径
Linux/etc/docker/daemon.json
macOS / WindowsDocker Desktop → Settings → Docker Engine

4.2 推荐的生产级 daemon.json

JSON
{
  "storage-driver": "overlay2",
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  },
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com",
    "https://docker.m.daocloud.io"
  ],
  "max-concurrent-downloads": 10,
  "max-concurrent-uploads": 5,
  "default-ulimits": {
    "nofile": {
      "Name": "nofile",
      "Hard": 65535,
      "Soft": 65535
    }
  },
  "live-restore": true,
  "userland-proxy": false,
  "dns": ["8.8.8.8", "1.1.1.1"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

4.3 关键配置说明

配置项说明推荐值
storage-driver存储驱动,overlay2 性能最优且稳定overlay2
log-driver • log-opts日志轮转,防止磁盘爆满json-file,50MB × 3
registry-mirrors国内镜像加速器,显著提升拉取速度腾讯云 / DaoCloud
live-restoreDocker 守护进程重启时保持容器运行true
userland-proxy禁用用户态代理,使用 iptables 直接转发,减少开销false
native.cgroupdriver与 systemd 对齐(CentOS/RHEL 默认 systemd)systemd
default-ulimits容器默认文件描述符上限65535

4.4 应用配置

Bash
# 创建/编辑配置文件
sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json
​
# 重新加载并重启 Docker
sudo systemctl daemon-reload
sudo systemctl restart docker
​
# 验证配置生效
docker info

五、Docker Compose 安装

5.1 Linux(已随 docker-compose-plugin 安装)

Bash
# 验证 Compose V2
docker compose version

如果需要独立安装:

Bash
# 下载最新稳定版二进制
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d'"' -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version

5.2 macOS / Windows

Docker Desktop 已内置 Docker Compose V2,无需额外安装。

六、常见问题与解决方案

6.1 权限问题

问题:Got permission denied while trying to connect to the Docker daemon socket

原因: 当前用户未加入 docker 组。

Bash
sudo usermod -aG docker $USER
newgrp docker
# 或重新登录 SSH

6.2 服务启动失败

问题:Job for docker.service failed

排查步骤:

Bash
# 查看详细错误
sudo journalctl -xeu docker.service
​
# 检查 daemon.json 语法
python3 -m json.tool /etc/docker/daemon.json
​
# 常见原因:daemon.json 中有逗号/引号错误

6.3 CentOS Stream 9 与 Podman/Buildah 冲突

问题:安装 Docker 时提示 conflicting requests

解决: 先彻底卸载 Podman 及相关包:

Bash
sudo dnf remove -y podman buildah containers-common
sudo dnf install -y docker-ce docker-ce-cli containerd.io

6.4 镜像拉取缓慢或超时

问题:error pulling image: context deadline exceeded

解决: 配置国内镜像加速器(见第四章 registry-mirrors),然后:

Bash
sudo systemctl daemon-reload
sudo systemctl restart docker

6.5 DNS 解析失败

问题:容器内无法解析域名

解决: 在 daemon.json 中指定 DNS:

JSON
{
  "dns": ["8.8.8.8", "1.1.1.1"]
}

6.6 磁盘空间不足

问题:no space left on device

解决:

Bash
# 查看 Docker 磁盘占用
docker system df
​
# 清理无用资源(dangling 镜像、停止的容器、未使用的网络)
docker system prune -f
​
# 深度清理(包括未使用的镜像和卷)
docker system prune -a --volumes -f

如需修改 Docker 数据存储路径:

JSON
{
  "data-root": "/data/docker"
}

6.7 Windows:WSL 版本过旧

问题:Docker Desktop 提示 WSL 2 installation is incomplete

解决:

Powershell
wsl --update
wsl --shutdown
# 重新启动 Docker Desktop

6.8 macOS:Docker Desktop 启动卡住

解决:

  1. 退出 Docker Desktop
  2. 终端执行 rm -rf ~/Library/Group\ Containers/group.com.docker/pki
  3. 重新打开 Docker Desktop

七、安装验证清单

  • docker version — 确认 Client 和 Server 均已运行
  • docker compose version — 确认 Compose V2 可用
  • docker run hello-world — 确认容器可正常拉取和运行
  • docker info — 确认 Storage Driver、Cgroup Driver、Registry Mirrors 等配置正确
  • systemctl is-active docker — 确认服务正在运行(Linux)
  • systemctl is-enabled docker — 确认开机自启(Linux)

八、卸载 Docker

Linux(CentOS Stream 9)

Bash
# 卸载软件包
sudo dnf remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
​
# 删除所有数据(镜像、容器、卷)
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -f /etc/docker/daemon.json

macOS

Docker Desktop → 菜单栏 Docker 图标 → Troubleshoot → Uninstall

Windows

设置 → 应用 → Docker Desktop → 卸载

九、参考资源

  • Docker 官方文档 — Install Docker Engine
  • Docker 官方文档 — CentOS 安装
  • Docker 官方文档 — Linux 安装后步骤
  • Docker Desktop for Mac
  • Docker Desktop for Windows
  • Docker Daemon 配置
← 上一篇
下一篇 →
1.1 环境信息1.2 前置条件1.3 卸载旧版本1.4 安装 Docker Engine(推荐:RPM 仓库方式)Step 1:安装依赖并添加 Docker 官方仓库Step 2:安装 Docker Engine、CLI 和插件Step 3:启动并设置开机自启Step 4:验证安装1.5 安装特定版本(可选)1.6 Linux 安装后配置(Post-Install)非 root 用户运行 Docker配置 Docker 开机自启(systemd)2.1 系统要求2.2 安装 Docker Desktop方式一:官网下载 DMG(推荐)方式二:Homebrew 安装2.3 Apple Silicon 注意事项2.4 性能优化3.1 系统要求3.2 前置:启用 WSL 23.3 安装 Docker Desktop3.4 Windows 注意事项4.1 配置文件位置4.2 推荐的生产级 daemon.json4.3 关键配置说明4.4 应用配置5.1 Linux(已随 docker-compose-plugin 安装)5.2 macOS / Windows6.1 权限问题问题:Got permission denied while trying to connect to the Docker daemon socket6.2 服务启动失败问题:Job for docker.service failed6.3 CentOS Stream 9 与 Podman/Buildah 冲突问题:安装 Docker 时提示 conflicting requests6.4 镜像拉取缓慢或超时问题:error pulling image: context deadline exceeded6.5 DNS 解析失败问题:容器内无法解析域名6.6 磁盘空间不足问题:no space left on device6.7 Windows:WSL 版本过旧问题:Docker Desktop 提示 WSL 2 installation is incomplete6.8 macOS:Docker Desktop 启动卡住Linux(CentOS Stream 9)macOSWindows