Docker: 安装Docker与环境配置
最后更新:2026-08-26
Docker 的安装比你想象的简单——无论你用 Windows、Mac 还是 Linux,10 分钟内就能拥有一个完整的容器运行环境。
1. 你将学到
- 各平台安装 Docker 的方法
- Docker Desktop 与 Docker Engine 的区别
- 镜像加速器配置
- 非 root 用户运行 Docker
- Docker 上下文管理
2. 一个团队的技术负责人真实故事
(1) 痛点:15 个人的环境各不相同
Charlie 的团队刚决定全面采用 Docker,但新成员 Lisa 问:"我该装 Docker Desktop 还是 Docker Engine?Mac 和 Linux 装法一样吗?"团队 15 个人用了 4 种操作系统(Windows/Mac/Ubuntu/CentOS),每种装法都不同,光是搭环境就花了 2 天。
(2) 安装决策树的解法
Charlie 画了一张安装决策树——3 种 OS × 2 种模式,让团队 15 分钟内全部就绪。
BASH
# Verify Docker installation after setup
docker run hello-world
(3) 收益:统一环境零摩擦
团队统一安装后,每个人 docker version 输出一致,环境问题从每周 5 次降到 0 次。
3. Docker Desktop vs Docker Engine
安装 Docker 前,先理解两种发行版的区别。
graph TB
START["选择 Docker 版本"] --> OS{"你的操作系统?"}
OS -->|Windows / Mac| DT["Docker Desktop<br/>含 GUI + VM + CLI"]
OS -->|Linux Server| DE["Docker Engine<br/>纯 CLI 服务"]
DT --> DEV["✅ 开发环境推荐"]
DE --> PROD["✅ 生产环境推荐"]
(1) 两种发行版对比
| 维度 | Docker Desktop | Docker Engine |
|---|---|---|
| 包含组件 | CLI + Daemon + GUI + VM | CLI + Daemon(纯后台服务) |
| 适用平台 | Windows / Mac / Linux | 仅 Linux |
| 资源占用 | 较高(含虚拟机 2-4 GB) | 低(直接跑在主机内核) |
| GUI 管理 | ✅ 有 Dashboard | ❌ 纯命令行 |
| 适用场景 | 开发者个人电脑 | 服务器/CI 环境 |
| 价格 | 个人免费,企业付费 | 完全免费(CE 版) |
(2) 安装决策流程
| 条件 | 推荐版本 |
|---|---|
| Windows / Mac 开发 | Docker Desktop |
| Linux 桌面开发 | Docker Desktop(需 GUI)或 Engine |
| Linux 服务器生产 | Docker Engine |
| CI/CD 构建节点 | Docker Engine |
💡 提示: Docker Desktop 在 Linux 上也有版本,但大多数 Linux 开发者更倾向于直接用 Docker Engine——更轻量,没有额外的虚拟化层。
4. 各平台安装步骤
(1) Windows 安装
前提条件:
- Windows 10 64-bit(版本 1903+)或 Windows 11
- 启用 WSL2(Windows Subsystem for Linux 2)
- 启用 Hyper-V(可选,WSL2 模式更推荐)
安装步骤:
| 步骤 | 操作 |
|---|---|
| 1 | 下载 Docker Desktop for Windows(docker.com/products/docker-desktop) |
| 2 | 双击安装程序,确保勾选"Use WSL 2 instead of Hyper-V" |
| 3 | 安装完成后重启电脑 |
| 4 | 启动 Docker Desktop,等待状态变为"Running" |
| 5 | 打开终端验证:docker version |
(2) Mac 安装
| 步骤 | 操作 |
|---|---|
| 1 | 下载 Docker Desktop for Mac(Intel 芯片选 amd64,Apple Silicon 选 arm64) |
| 2 | 拖拽 Docker.app 到 Applications 文件夹 |
| 3 | 启动 Docker.app,等待菜单栏鲸鱼图标稳定 |
| 4 | 终端验证:docker version |
(3) Linux 安装(Ubuntu/Debian)
BASH
# 1. Update package index
sudo apt-get update
# 2. Install prerequisites
sudo apt-get install -y ca-certificates curl gnupg
# 3. Add Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# 4. Add Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 5. Install Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 6. Start Docker
sudo systemctl start docker
sudo systemctl enable docker
# 7. Verify
sudo docker run hello-world
5. 非 root 用户配置
默认情况下,Linux 上只有 root 用户和 docker 组成员能运行 Docker。
▶ 示例:将当前用户加入 docker 组(难度⭐)
BASH
# Add current user to docker group
sudo usermod -aG docker $USER
# Apply group change (or log out and back in)
newgrp docker
# Verify: run docker without sudo
docker run hello-world
⚠️ 注意: 加入 docker 组等同于拥有 root 权限(因为容器可以挂载主机任意目录)。生产环境应严格控制 docker 组成员。
6. 镜像加速器配置
国内访问 Docker Hub 可能很慢,配置镜像加速器可大幅提升拉取速度。
(1) 主流镜像加速器
| 加速器 | 地址 | 说明 |
|---|---|---|
| 阿里云 | https://<your-id>.mirror.aliyuncs.com |
需登录获取专属地址 |
| 中科大 | https://docker.mirrors.ustc.edu.cn |
免费,无需注册 |
| 网易 | https://hub-mirror.c.163.com |
免费 |
| Docker 官方 | https://registry.docker.io |
默认,国外速度快 |
▶ 示例:config Linux 下的镜像加速器(难度⭐⭐)
BASH
# Create or edit Docker daemon configuration
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
EOF
# Restart Docker to apply changes
sudo systemctl daemon-reload
sudo systemctl restart docker
# Verify the configuration
docker info | grep -A 5 "Registry Mirrors"
💻 输出:
TEXT
📖 仅展示
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
https://hub-mirror.c.163.com/
▶ 示例:配置 Docker Desktop 镜像加速器(难度⭐)
在 Docker Desktop GUI 中配置:Settings → Docker Engine → 在 JSON 中添加 registry-mirrors 数组 → Apply & Restart。
或者直接编辑配置文件(Mac: ~/.docker/daemon.json,Windows: C:\Users\<user>\.docker\daemon.json)。
7. Docker 上下文管理
Docker 上下文(Context)让你在多个 Docker 主机之间快速切换——例如本地 Docker 和远程服务器。
▶ 示例:查看和切换 Docker 上下文(难度⭐⭐)
BASH
# List all Docker contexts
docker context ls
💻 输出:
TEXT
📖 仅展示
NAME TYPE DESCRIPTION
default * moby Current DOCKER_HOST based configuration
remote-server moby Remote Docker on 10.0.1.100
BASH
# Create a new context for a remote Docker host
docker context create remote-server --docker "host=ssh://user@10.0.1.100"
# Switch to the remote context
docker context use remote-server
# Verify: now all docker commands run on the remote server
docker ps
# Switch back to local
docker context use default
▶ 示例:验证安装成功(难度⭐)
BASH
# Full verification checklist
docker version # Client + Server versions
docker info # System-wide info
docker run hello-world # End-to-end test
8. 常见安装问题排查
| 问题 | 原因 | 解决方法 |
|---|---|---|
Cannot connect to the Docker daemon |
Docker 服务未启动 | sudo systemctl start docker |
permission denied while trying to connect |
用户不在 docker 组 | sudo usermod -aG docker $USER |
WSL2 installation is incomplete (Windows) |
WSL2 未正确安装 | wsl --install 后重启 |
docker: command not found |
Docker 未加入 PATH | 重新安装或手动添加 PATH |
| 镜像拉取超时 | 网络问题 | 配置镜像加速器 |
9. 完整示例:从零配置 Ubuntu 服务器 Docker 环境
BASH
# ============================================
# Complete walkthrough: Install Docker on Ubuntu
# Covers: install, sudo-free, mirror, verify
# ============================================
# 1. Install Docker Engine
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 2. Start and enable Docker service
sudo systemctl start docker
sudo systemctl enable docker
# 3. Add current user to docker group (no more sudo)
sudo usermod -aG docker $USER
newgrp docker
# 4. Configure registry mirror for faster pulls
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 5. Verify: run Nginx and access it
docker run -d -p 8080:80 --name test-nginx nginx:latest
curl http://localhost:8080
# 6. Clean up
docker stop test-nginx
docker rm test-nginx
💻 输出(节选):
TEXT
📖 仅展示
# docker run -d -p 8080:80 --name test-nginx nginx:latest
a1b2c3d4e5f6...
# curl http://localhost:8080
<!DOCTYPE html>
<html><head><title>Welcome to nginx!</title>...
❓ 常见问题
Q Docker Desktop 免费吗?
A 个人使用和小企业(<250 员工、<10 million USD 年收入)免费。大企业需购买 Docker Business 订阅($24/用户/月起)。Docker Engine(Linux 版)始终免费开源。
Q Linux 上为什么推荐用 Engine 而不是 Desktop?
A Docker Engine 直接运行在主机内核上,无额外虚拟化层,资源占用更低、性能更好。Desktop 在 Linux 上需要运行一个虚拟机来提供 GUI,多了一层开销。服务器环境不需要 GUI,用 Engine 最合适。
Q 镜像加速器安全吗?
A 主流加速器(阿里云/中科大/网易)都是可信的 CDN 代理,只缓存官方镜像不修改内容。但加速器只加速 pull(拉取),push(推送)仍走 Docker Hub 原始路径。公司内部建议搭建私有 Registry。
Q 怎么验证 Docker 安装成功?
A 三步验证法:①
docker version 看到 Client 和 Server 两部分信息;② docker info 能正常输出;③ docker run hello-world 输出 "Hello from Docker!"。三步都通过说明安装完整。Q WSL2 和 Hyper-V 怎么选?
A 优先选 WSL2——启动更快、内存占用更动态、与 Windows 集成更好。Hyper-V 仅在 WSL2 不可用时(如旧版 Windows 10)使用。Docker Desktop 默认推荐 WSL2 模式。
Q Docker 安装后占多少磁盘空间?
A Docker Engine 约 300 MB,Docker Desktop(含虚拟机)约 2-4 GB。随着拉取镜像和创建容器,空间会持续增长,可用
docker system df 查看占用,docker system prune 清理。📖 小节
- Docker Desktop 适合 Windows/Mac 开发(含 GUI),Docker Engine 适合 Linux 服务器(纯 CLI)
- Windows 用 WSL2 模式、Mac 分 Intel/Apple Silicon 选对应版本
- Linux 安装用官方 APT/YUM 仓库,不要用系统自带的旧版本
- 将用户加入 docker 组可免 sudo 运行 Docker
- 配置镜像加速器解决国内 Docker Hub 访问慢的问题
- Docker Context 可在本地和远程 Docker 主机之间快速切换
📝 作业
- 基础题(难度⭐):在本机安装 Docker,运行
docker run hello-world并截图保存输出。 - 进阶题(难度⭐⭐):配置一个国内镜像加速器,运行
docker info | grep -A 5 "Registry Mirrors"确认配置生效。 - 挑战题(难度⭐⭐⭐):运行
docker run -d -p 8080:80 nginx启动 Nginx,用浏览器访问http://localhost:8080确认页面正常显示,然后用docker stop和docker rm清理容器。