Docker 环境安装

学 Docker 的第一步是把环境装好。Docker 原生只支持 Linux(因为它依赖 Linux 内核的 cgroups 和 namespaces),但通过内置一个轻量级 Linux 虚拟机,在 macOS 和 Windows 上也能用得很舒服。本章带你三大平台通吃,顺便跑起第一个容器。

两种安装方式:Desktop vs Engine

先弄清两个名词,后面才不混乱:

简单记:个人 Mac/Win 开发用 Desktop;Linux 服务器用 Engine。两者命令完全一样。

macOS 与 Windows:装 Docker Desktop

# macOS / Windows:装 Docker Desktop(图形客户端 + 内置 Linux 虚拟机)

# macOS
# 1. 访问 https://www.docker.com/products/docker-desktop/
# 2. 下载 Docker.dmg(Intel 芯片选 Intel,Apple M 系列选 Apple Silicon)
# 3. 拖进 Applications,启动 Docker.app
# 4. 等状态栏鲸鱼图标变成稳定状态,终端就能用 docker 命令了

# Windows
# 1. 同样下载 Docker Desktop Installer.exe
# 2. 前置条件:Win10/11 64位 + 启用 WSL 2(推荐)或 Hyper-V
# 3. 安装时勾选 "Use WSL 2 instead of Hyper-V"
# 4. 重启后启动 Docker Desktop

# Docker Desktop 自带:
#   - Docker Engine(守护进程)
#   - Docker CLI(命令行)
#   - Docker Compose / Build Kit
#   - 图形界面管理镜像和容器

Apple Silicon(M1/M2/M3)用户注意:Docker Desktop 默认用 ARM 架构的镜像,跑 x86 镜像会通过 QEMU 转译,性能下降。一般官方镜像都有 arm64 版本(如 node:20-alpine),尽量用原生 ARM 镜像。

Linux:装 Docker Engine

# Linux:装 Docker Engine(原生,无虚拟机层,性能最好)

# Ubuntu / Debian 一键安装(官方脚本)
curl -fsSL https://get.docker.com | sudo sh

# 或者用 apt 手动装(以 Ubuntu 为例)
sudo apt update
sudo apt install -y docker.io docker-compose-plugin

# 把当前用户加入 docker 组,免去每次 sudo
sudo usermod -aG docker $USER
newgrp docker              # 立即生效(或重新登录)

# 启动并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# CentOS / RHEL / Fedora 用 yum 或 dnf
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

Ubuntu 用 apt、CentOS 用 yum,命令略有不同但思路一致。装完务必执行 sudo usermod -aG docker $USER,否则每次跑 docker 都要加 sudo,很烦。newgrp docker 让组权限立即生效,不用重新登录。

验证安装

装完后跑下面三步,全部通过说明 Docker 工作正常:

# 安装完成后,在终端验证三步

# 1. 看版本:能打印 client 和 server 版本就说明装好了
docker --version
# Docker version 24.0.7, build afdd53b

# 2. 看详细信息:运行时、存储驱动、镜像数量等
docker info

# 3. 跑官方测试镜像(会自动下载并打印一段话)
docker run hello-world
# 输出关键句: Hello from Docker!
# This message shows that your installation appears to be working correctly.

如果 docker info 报错 "Cannot connect to the Docker daemon",说明守护进程没起来:Linux 检查 systemctl status docker,Mac/Win 检查 Docker Desktop 是否在运行。

配置国内镜像加速器(强烈推荐)

Docker Hub 服务器在国外,国内直连拉镜像慢得让人想砸键盘。配置一个或多个国内镜像加速器,下载速度能从几十 KB/s 飙到几十 MB/s:

# 国内网络直连 Docker Hub 很慢,建议配置镜像加速器

# Linux:编辑 /etc/docker/daemon.json
# macOS / Windows:Docker Desktop → Settings → Docker Engine
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

# 改完必须重启 Docker 才生效
# Linux
sudo systemctl restart docker
# macOS / Windows:在 Docker Desktop 里点 Restart

# 验证加速器是否生效
docker info | grep -A 5 "Registry Mirrors"

加速器地址会变动,上面的几个如果失效,搜"docker 镜像加速器 2024"找最新的。配置文件是 JSON 格式,语法严格:键和字符串必须用双引号,最后一项不能有逗号。

第一个实战:跑一个 Nginx

装好了加速器,来跑个看得见摸得着的东西——一个完整的 Web 服务器:

# 第一个实战容器:跑一个 Nginx Web 服务器

# 1. 拉取官方镜像(指定版本,别用 latest)
docker pull nginx:1.25-alpine

# 2. 后台运行,把主机 8080 端口映射到容器 80 端口
docker run -d --name web -p 8080:80 nginx:1.25-alpine
# 返回一长串容器 ID,说明启动成功

# 3. 浏览器访问 http://localhost:8080 看到 Nginx 欢迎页
#    或命令行验证
curl http://localhost:8080

# 4. 看运行状态
docker ps

# 5. 看日志(实时跟随)
docker logs -f web

# 6. 进入容器开个 shell
docker exec -it web sh

# 7. 停止、删除(清理战场)
docker stop web
docker rm web

几个高频参数解释一下:

看到 Nginx 欢迎页那一刻,恭喜——你已经成功用了 Docker!下一章我们系统学镜像相关命令。

常见问题

← 上一篇 Docker 简介

下一篇 Docker 镜像

✈️💬