Skip to content

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 等发行版提供独立安装页。长期运行或受审计环境应使用对应发行版的软件仓库,以便选择版本并通过包管理器升级。

测试机可以先下载并审阅官方便捷脚本:

bash
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:

powershell
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 应用:

bash
brew install --cask docker

安装命令完成后仍需首次启动 Docker Desktop,等待状态显示 Engine 已就绪。

验证安装结果 ​

在终端或 PowerShell 中执行:

bash
docker version
docker info
docker compose version
docker run --rm hello-world

docker 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:

yaml
services:
  check:
    image: alpine:3.20
    command: ["sh", "-c", "echo compose-ok; sleep 30"]
bash
docker compose config --quiet
docker compose up -d
docker compose ps
docker compose logs --tail=20 check
docker compose down

config --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,再开始管理实际容器服务。

参考资料 ​

全部公开文章由同一个站点构建和发布。