Docker 安装使用教程
Docker 在 Linux 上通常以 Docker Engine 运行,在 Windows 和 macOS 上通常通过 Docker Desktop 提供 Engine、命令行、Compose 和图形界面。本文覆盖常见系统的安装选择、安装后验证和基础使用,不绑定某个业务镜像。
本文按 2026-09-11 的 Docker 官方文档整理,并在 Apple silicon macOS 上使用 Docker Desktop 4.86.0、Engine 29.7.2 和 Compose 5.3.1 实测通过 CLI、镜像拉取、容器运行和最小 Compose 示例。Linux 与 Windows 安装步骤未做运行验证,安装包版本、系统要求和支持周期应以对应官方页面为准。
适用场景
- Linux 服务器安装 Docker Engine 和 Compose 插件;
- Windows 通过 WSL 2 使用 Linux 容器;
- Intel 或 Apple silicon Mac 使用 Docker Desktop;
- 已安装 Docker 的机器检查 CLI、daemon 和 Compose 是否正常。
Linux 安装 Docker Engine
Docker 官方为 Ubuntu、Debian、CentOS、Fedora、RHEL 等发行版提供独立安装页。长期运行或受审计环境应使用对应发行版的软件仓库,以便选择版本并通过包管理器升级。
测试机可以先下载并审阅官方便捷脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
less get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable --now docker便捷脚本会修改软件源并安装系统组件,不适合需要固定版本或严格变更审计的生产主机。
Windows 安装 Docker Desktop
Windows 的常见路径是 Docker Desktop 配合 WSL 2 后端。先在管理员 PowerShell 中检查 WSL:
wsl --status
wsl --update按照 Docker Desktop for Windows 核对当前 Windows 版本、虚拟化、WSL 2 和磁盘要求,然后运行安装程序。启动 Docker Desktop 后确认使用 Linux containers,再在 PowerShell 验证 docker version 和 docker compose version。
macOS 安装 Docker Desktop
按照 Docker Desktop for Mac 选择 Apple silicon 或 Intel 安装包,将 Docker 拖入 Applications 并完成首次启动授权。Apple silicon 运行只提供 amd64 的镜像时可能使用仿真,部署前应检查目标镜像是否包含 arm64。
也可以使用 Homebrew 安装 Desktop 应用:
brew install --cask docker安装命令完成后仍需首次启动 Docker Desktop,等待状态显示 Engine 已就绪。
验证安装结果
在终端或 PowerShell 中执行:
docker version
docker info
docker compose version
docker run --rm hello-worlddocker version 应同时显示 Client 和 Server;只有 Client 通常表示 daemon 尚未启动或连接目标错误。docker run --rm hello-world 会拉取官方测试镜像、启动容器并在退出后删除容器,用于验证 Registry、daemon 和容器运行链路。
Docker 命令行基础
| 目标 | 命令 |
|---|---|
| 查看本地镜像 | docker image ls |
| 查看运行中容器 | docker ps |
| 查看全部容器 | docker ps -a |
| 进入指定容器 | docker exec -it <容器名称或ID> bash |
| 拉取测试镜像 | docker pull alpine:3.20 |
| 临时运行命令 | docker run --rm alpine:3.20 echo docker-ok |
| 查看容器日志 | docker logs <容器名> |
| 查看详细配置 | docker inspect <容器名或镜像> |
| 停止容器 | docker stop <容器名> |
| 删除已停止容器 | docker rm <容器名> |
| 查看卷和网络 | docker volume ls / docker network ls |
| 查看磁盘占用 | docker system df |
镜像是只读模板,容器是镜像的运行实例,卷和绑定挂载保存容器外的数据,网络负责容器间通信。删除容器不会自动删除命名卷;执行 prune 或删除卷前必须确认数据归属。
Docker Desktop 基础使用
Docker Desktop 可以查看容器、镜像、卷、构建任务和日志,也可以配置 CPU、内存、代理、Registry mirror 和文件共享。图形界面与 CLI 操作同一个 Docker 环境,排查时先执行 docker context show,避免终端连接到另一个远程 daemon。
Desktop 设置变化可能重启 Engine。修改代理、镜像源、磁盘位置或资源限制前记录原值;企业环境还需遵守 Docker Desktop 的许可和组织策略。
Docker Compose 安装与使用
Docker Desktop 已包含 Compose。Linux 使用 Docker 官方仓库时安装 docker-compose-plugin,命令形式是 docker compose;旧的独立 docker-compose 属于兼容路径,新配置应优先使用 Compose 插件。
最小 compose.yaml:
services:
check:
image: alpine:3.20
command: ["sh", "-c", "echo compose-ok; sleep 30"]docker compose config --quiet
docker compose up -d
docker compose ps
docker compose logs --tail=20 check
docker compose downconfig --quiet 无输出且退出码为 0 表示 YAML 和变量可以解析。ps 应显示 check 服务,日志应包含 compose-ok。
升级、卸载与数据边界
Linux 使用原发行版包管理器升级 Docker Engine、CLI、containerd、Buildx 和 Compose 插件;Docker Desktop 通过应用更新。升级前记录 docker version、当前 context、daemon 配置和重要卷,涉及生产服务时先完成备份和恢复验证。
卸载 Docker 软件通常不会自动删除 /var/lib/docker、Desktop 虚拟磁盘或命名卷。需要清理时先执行 docker system df 和 docker volume ls 盘点数据。回滚 Engine 或 Desktop 版本前核对数据格式和兼容说明,不能把卸载应用等同于安全的数据回滚。
常见问题
只有 Client,没有 Server
Linux 检查 systemctl status docker;Windows 和 macOS 确认 Docker Desktop 已启动。再执行 docker context show 和 docker context ls,确认 CLI 连接到预期 daemon。
Linux 提示 Docker socket 权限不足
先用 sudo docker info 判断是否为权限问题。加入 docker 用户组后需要重新登录,而且该用户组拥有接近 root 的主机控制能力;权限严格时继续使用 sudo 或评估 Rootless mode。
拉取镜像超时
先检查 DNS、代理和 curl -I https://registry-1.docker.io/v2/ 的连接结果,再检查 docker info 中的代理或 Registry 配置。镜像源属于时效性基础设施,不应直接复制未知来源的地址。
Compose 命令不存在
确认使用的是 docker compose version。Linux 缺少插件时从 Docker 官方仓库安装 docker-compose-plugin;Docker Desktop 则检查应用是否完整启动和 CLI 路径是否生效。
安全边界
不要把 Docker daemon TCP API 或 /var/run/docker.sock 暴露给不可信网络和容器。镜像应使用可信来源,敏感变量不要写进命令历史,清理命令执行前确认卷和容器归属。公网服务还需要最小端口暴露、TLS、日志限制和独立备份。
总结
Linux 服务器通常安装 Docker Engine 和 Compose 插件,Windows 与 macOS 通常安装 Docker Desktop。完成安装后应分别验证 CLI、daemon、Registry 拉取、容器运行和 Compose,再开始管理实际容器服务。