大多数安装教程只管把命令贴出来,跑不起来自己去猜。这篇不一样,我把三个平台上实际遇到的麻烦都写进来了,你照着做应该能一次跑通。

先说结论:Linux 装起来最省心,macOS 次之,Windows 坑最多。 但三个都能用,选你用的平台往下看就行。


安装前先搞清楚一件事

Docker 在不同平台上的底层实现是不一样的。

Linux 上,Docker 直接跑在内核上,用的是 Linux 原生的 namespace 和 cgroup,几乎没有性能损耗。

Windows 和 macOS 上,操作系统内核不是 Linux,所以 Docker Desktop 会在后台运行一个轻量级的 Linux 虚拟机(基于 Hyper-V 或 Apple Virtualization Framework)。容器实际上跑在这个虚拟机里,不是直接跑在宿主机上。

Windows / macOS 宿主机

Windows / macOS

Linux VM
(Docker Desktop 内置)

Docker Daemon

容器 A

容器 B

Linux 宿主机

Linux Kernel
(namespace + cgroup)

Docker Daemon

容器 A

容器 B

这不是坏事,只是你需要知道这个结构——后面如果遇到文件挂载慢、网络行为奇怪之类的问题,根源往往在这里。


Windows 安装

前提条件

Windows 安装 Docker Desktop 需要满足以下条件之一:

  • Windows 10 21H2 或更高版本(家庭版、专业版都行)
  • Windows 11

还需要启用虚拟化。打开任务管理器 → 性能 → CPU,看"虚拟化"那行是不是"已启用"。如果是"已禁用",需要去 BIOS 里把 Intel VT-x / AMD-V 打开。

下载安装

去官网下载:https://docs.docker.com/desktop/install/windows-install/

下载 Docker Desktop Installer.exe,双击运行,一路 Next,等安装完成重启电脑。

装完后,Docker Desktop 会在系统托盘里出现一个鲸鱼图标。等它从旋转动画变成静止的鲸鱼,就说明启动好了。

验证安装

打开 PowerShell 或者 CMD:

docker --version
docker run hello-world

看到类似输出就成功了:

Docker version 26.1.4, build 5650f9b
Hello from Docker!
This message shows that your installation appears to be working correctly.

Windows 特有的坑

坑一:WSL 2 相关报错

Docker Desktop 默认用 WSL 2 作为后端。如果你的 WSL 2 没装好,启动时会报错。解决方法:

# 以管理员身份运行 PowerShell
wsl --install
wsl --set-default-version 2

然后重启电脑,重新启动 Docker Desktop。

坑二:C 盘空间不够

Docker Desktop 的虚拟磁盘文件默认在 C:\Users\<用户名>\AppData\Local\Docker\wsl\data\,会慢慢长大。如果你 C 盘空间有限,在 Docker Desktop 设置里可以把存储路径迁移到其他盘。

坑三:镜像拉取超时

国内网络直连 Docker Hub 会很慢,经常拉取超时。这个问题后面单独讲。


macOS 安装

下载安装

macOS 有两个版本要注意区分:

  • Apple Silicon(M1/M2/M3/M4 芯片) → 下载 Apple Silicon 版本
  • Intel 芯片 → 下载 Intel 版本

去官网:https://docs.docker.com/desktop/install/mac-install/

下载对应的 .dmg 文件,打开后把 Docker 拖进 Applications 文件夹,启动即可。

下载 .dmg

拖入 Applications

启动 Docker Desktop

等待鲸鱼图标
变为静止

终端验证

docker run hello-world

第一次启动会请求权限,点允许就行。等菜单栏的鲸鱼图标停止动画,表示启动完成。

验证安装

打开终端:

docker --version
docker run hello-world

macOS 特有的情况

Apple Silicon 上的兼容性

绝大多数镜像现在都支持 linux/arm64,直接用没问题。少数老镜像只有 linux/amd64,Docker Desktop 会自动用 Rosetta 转译,性能会差一些,但通常够用。

如果你拉镜像时看到这个提示:

WARNING: The requested image's platform (linux/amd64) does not match 
the detected host platform (linux/arm64/v8)

说明这个镜像没有 ARM 版本,在 Rosetta 模式下运行。功能上一般没问题,但别拿它做性能测试。

文件挂载速度

macOS 和容器之间有一层虚拟机,所以挂载宿主机目录(-v)的 I/O 比 Linux 慢。Docker Desktop 用 VirtioFS 优化过,日常开发够用,但不建议把大量文件密集读写的工作负载放在这上面跑。


Linux 安装

Linux 安装 Docker 有两种方式,推荐用官方脚本,省事。

方式一:一键脚本(推荐新手)

curl -fsSL https://get.docker.com | sh

这个脚本会自动检测你的发行版,安装对应的包。支持 Ubuntu、Debian、CentOS、Fedora 等主流发行版。

装完后,把当前用户加入 docker 组,这样不用每次都 sudo

sudo usermod -aG docker $USER
newgrp docker

方式二:手动安装(Ubuntu 示例)

有些环境不方便跑 curl 脚本,可以手动装:

# 清理旧版本(如果有)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
  sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 添加仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动并设置开机自启

sudo systemctl start docker
sudo systemctl enable docker

验证安装

docker --version
docker run hello-world

成功输出如下:

Docker version 26.1.4, build 5650f9b

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

国内镜像加速配置(三端通用)

这个必须配,不然拉镜像的等待时间会让你怀疑是不是网络断了。

找到配置文件位置

不同系统的 Docker 配置文件路径不一样:

系统配置文件路径
Linux/etc/docker/daemon.json
macOSDocker Desktop → 设置 → Docker Engine
WindowsDocker Desktop → 设置 → Docker Engine

macOS 和 Windows 在 Docker Desktop 图形界面里改,左侧选"Docker Engine",直接编辑 JSON。

配置内容

{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com"
  ]
}

改完保存,点"Apply & Restart"(图形界面)或者执行:

# Linux 手动重启
sudo systemctl daemon-reload
sudo systemctl restart docker

验证是否生效:

docker info | grep -A 5 "Registry Mirrors"

输出里看到你配的地址就行了。

镜像加速对比示意

Docker Hub 镜像加速节点 你的电脑 Docker Hub 镜像加速节点 你的电脑 未配置加速(直连) 配置加速后 docker pull nginx 下载(慢,可能超时) docker pull nginx 回源拉取(按需) 下载(国内节点,快多了)

安装完成后,跑个实际的容器试试

hello-world 只是确认安装成功,看不出什么。跑个 nginx 才有感觉:

docker run -d -p 8080:80 --name my-nginx nginx

然后打开浏览器访问 http://localhost:8080,看到 nginx 欢迎页就说明一切正常。

-p 8080:80 端口映射

浏览器
localhost:8080

宿主机端口 8080

容器内部端口 80
nginx 进程

用完可以清理掉:

docker stop my-nginx
docker rm my-nginx

三个平台的差异总结

日常使用

Linux:推荐生产/开发服务器

macOS:开发机首选

Windows:日常可用,I/O 密集型慎用

安装难度

Linux:脚本一键,配置文件透明

macOS:图形化,芯片版本别选错

Windows:坑最多,WSL 2 和虚拟化要提前准备

性能

Linux:最高,直接用内核能力

macOS:良好,VirtioFS 优化后挂载 I/O 可接受

Windows:中等,WSL 2 模式比 Hyper-V 模式快


常见安装报错

Cannot connect to the Docker daemon

Docker 服务没启动。Linux 上跑 sudo systemctl start docker;Windows/macOS 打开 Docker Desktop 等它启动完。

permission denied while trying to connect to the Docker daemon socket

当前用户不在 docker 组。Linux 上执行 sudo usermod -aG docker $USER,然后重新登录终端(不是重启系统,退出当前 shell 重新进就行)。

docker: Error response from daemon: Conflict. The container name "/xxx" is already in use

同名容器已存在,先删掉:docker rm <容器名>,或者换个名字 --name

拉镜像一直卡着不动

多半是网络问题。先配镜像加速,上面已经写了。实在不行,换个网络环境试试。


三端安装到这里就齐了。下一篇聊 Docker 的核心概念——镜像和容器到底是什么关系,很多人用了很久都说不清楚,看完就明白了。

欢迎关注我,

Docker Compose 入门:一个命令跑起整套环境

更多推荐