【2026最新】保姆级Docker安装一次搞定
本文提供了一份全面的Docker安装指南,涵盖Linux、Windows和macOS三大操作系统。Docker通过容器技术实现环境一致性、资源隔离性和部署敏捷性,能显著提升开发效率。安装前需确认系统版本和硬件配置。Linux采用APT源安装,Windows优先使用WSL2模式,macOS支持图形化和Homebrew两种安装方式。文中详细介绍了各平台的安装步骤、常见问题解决方案,并建议配置国内镜像加
目录
本指南将为你提供一份从零开始的 Docker 保姆级安装教程,涵盖 Linux、Windows 和 macOS 主流操作系统。
为什么你的电脑需要 Docker?
在开始安装之前,我们先花一分钟聊聊 Docker 能为你带来什么。简单来说,Docker 允许你将应用程序及其所有依赖项(代码、运行时、系统工具、库等)打包成一个标准化的单元,称为“容器”。与传统虚拟机相比,容器更加轻量、启动更快(秒级),且资源利用率更高。
Docker的核心价值体现在三个方面:
-
环境一致性:彻底消除“开发环境能跑,测试环境就崩”的尴尬,实现开发、测试、生产环境无缝衔接。
-
资源隔离性:每个容器独立运行,应用之间不会相互干扰,有效管理依赖冲突。
-
部署敏捷性:配合微服务架构,可以极大地提升应用的交付速度。有案例显示,采用 Docker 后某电商平台的部署时间从30分钟缩短至2分钟,服务器资源利用率提升40%。
安装前的准备
在正式开始安装命令之前,我们需要先确认你的“坐骑”——也就是操作系统,是否做好了准备。不同的系统,骑乘的方式略有不同。
系统要求一览
| 操作系统 | 推荐版本 | 关键要求 |
| Linux | Ubuntu 24.04 LTS, CentOS Stream 9 | 内核版本 ≥ 5.4;需要 curl、gnupg 等依赖 |
| Windows | Windows 11 / Windows 10 (专业版/企业版) | 启用 WSL 2 和 Hyper-V;至少 4GB 内存 |
| macOS | macOS Sonoma (14.x) 及以上 | 至少 4GB 内存;Apple Silicon (M1/M2/M3) 用户需安装 Rosetta |
硬件配置建议
-
内存:至少 4GB(生产环境建议 8GB+)。
-
存储:预留 50GB 以上磁盘空间用于存放镜像和容器。
跨平台安装实战
好了,确认坐骑状态良好后,我们就开始正式的安装之旅。这里将分别介绍 Linux、Windows 和 macOS 下的安装方法。
Docker官网:https://www.docker.com/
Linux 系统安装(以 Ubuntu 为例)
Linux 是 Docker 的原生运行环境,体验最佳。我们主要采用最安全、最可控的包管理器安装方式,步骤如下:
步骤1:卸载旧版本
打开终端,为了避免冲突,先清除系统中可能存在的旧版本 Docker。
步骤2:设置 Docker 的 APT 源 这是最关键的一步,我们将添加 Docker 官方的软件源,以便安装最新版本。考虑到国内网络环境,这里以使用阿里云镜像源为例,速度会快很多。
# 安装必要的依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
# 创建密钥存放目录
sudo mkdir -p /etc/apt/keyrings
# 添加 Docker 的 GPG 密钥(使用阿里云源)
curl -fsSL https://mirrors.aliyun.com/docker-ce/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://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
步骤3:安装 Docker 引擎
更新包索引并安装 Docker 和相关组件。
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
这里安装的 docker-compose-plugin 是 Docker Compose 的插件版本,现在推荐使用 docker compose 命令(中间有空格)来代替传统的 docker-compose。
步骤4:验证安装
运行 Hello World 镜像,如果看到欢迎信息,说明安装成功。
sudo docker run hello-world
步骤5:可选但推荐的操作
-
以非 root 用户运行 Docker:默认情况下,
docker命令需要sudo权限。为了避免每次输入sudo,可以将当前用户添加到docker组:
sudo usermod -aG docker $USER
newgrp docker # 或注销重新登录
配置镜像加速器:由于众所周知的原因,直接从 Docker Hub 拉取镜像可能很慢。可以通过配置 daemon.json 文件使用国内加速器。
sudo nano /etc/docker/daemon.json
输入以下内容(以阿里云为例,你需要注册阿里云容器服务获取专属加速地址):
{
"registry-mirrors": ["https://<你的专属加速器ID>.mirror.aliyuncs.com"]
}
然后重启 Docker 服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
Windows系统安装

如何查看自己的系统类型?
Win+I → 系统 → 关于
-
看系统类型:
-
基于 x64 的处理器 → AMD64
-
基于 ARM 的处理器 → ARM64

下载完成后不要直接打开,如果直接打开会默认下载在C:\Program Files下,如果你的C盘内存不是很充足建议下载其他盘符。
另外这里需要特别说明的是虚拟化技术。它允许你的电脑创建“虚拟机”,而Docker在Windows上正是通过轻量级虚拟机来运行Linux容器的。
开启 Hyper-V
在Windows上安装Docker,你会频繁听到这两个词。简单理解:
-
WSL 2(Windows Subsystem for Linux 2):就像一个极度精简的“Linux运行环境”,与Windows深度集成,资源占用小,启动快,是目前最推荐的方式,也是Docker官方主推的后端。
-
Hyper-V:是Windows专业版自带的“虚拟机旗舰店”,功能强大但资源开销较大。如果你的电脑是专业版/企业版,Docker Desktop可以基于它运行。
结论:无论你是什么Windows版本,我们都优先使用 WSL 2 模式。
打开控制面板---->点击程序--->点击启用或关闭Windows功能

不同电脑或许会有不一样。

更换安装地址
找到你的安装包位置,打开命令行窗口,执行以下命令进行安装,将 --installation-dir 后的路径替换为你想要的安装位置:
"Docker Desktop Installer.exe" install --accept-license --installation-dir="D:\Program Files\Docker"
你还可以同时指定镜像和数据的存储位置,以进一步节省 C 盘空间:
"Docker Desktop Installer.exe" install --accept-license --installation-dir="D:\Program Files\Docker" --wsl-default-data-root="D:\DockerData"

打开Docker Desktop,进行正常登录or注册即可。

验证安装:
# 查看Docker版本
docker version
# 运行测试容器
docker run hello-world

后续使用就和Linux大致一样了。
你可能遇到的问题?

是你的WSL太老了,打开命令行复制粘贴即可wsl --update,等他自动跑完。
Windows 下 Docker Desktop 拉取镜像超时的问题,核心原因是默认的 docker.io 境外源网络不通。
1.先配置国内镜像加速(解决超时)
在 Windows 上配置 Docker 镜像加速:
-
打开 Docker Desktop,点击右上角的 Settings(齿轮图标)。
-
在左侧菜单选择 Docker Engine。
-
将配置文件修改为以下内容,添加国内镜像源:
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://mirror.baidubce.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
-
点击 Apply & Restart 保存并重启 Docker。

这三个镜像源都是国内稳定可用的,优先使用百度、中科大、网易的镜像,能彻底解决 TLS handshake timeout 问题。
如果依然失败(备选方案)
如果所有镜像源都拉取失败,可以尝试:
-
切换手机热点,排除当前网络限制。
-
检查 Windows 防火墙或杀毒软件,看是否拦截了 Docker 的网络请求。
-
直接下载你需要的安装包。
macOS系统安装
如果你使用的是搭载M系列芯片的Mac(M1/M2/M3/M4),有两点需要注意:
-
下载正确的版本:Docker官方会自动识别你的芯片类型,但手动下载时请务必选择“Apple Silicon”版本,而不是“Intel Chip”版本 。
-
关于Rosetta 2:虽然现在Rosetta 2不再是强制要求,但如果你需要使用一些仅支持x86_64架构的命令行工具,建议提前安装:
softwareupdate --install-rosetta
这个命令会在终端中运行,按提示同意协议即可 。
macOS上安装Docker主要有两种方式:图形化拖拽安装适合大多数用户,Homebrew Cask安装适合喜欢终端操作的同学,我们分别介绍。
方法一:图形化安装
这是最简单、最直观的安装方式,全程只需拖拽几下鼠标。
步骤1:下载Docker Desktop安装包
打开浏览器,访问Docker官方下载页面:https://www.docker.com/products/docker-desktop/
点击蓝色的“Download for Mac”按钮,系统会自动识别你的芯片类型并开始下载对应的 Docker.dmg 文件 。文件大小约500-600MB,下载时间取决于你的网速。
步骤2:安装Docker Desktop
-
找到下载好的
Docker.dmg文件(通常在“下载”文件夹),双击打开。 -
会弹出一个窗口,左边是Docker的鲸鱼图标,右边是你的“Applications”文件夹图标。
-
关键一步:用鼠标将左边的Docker图标拖拽到右边的Applications文件夹图标上 。
-
等待文件拷贝完成,这个过程通常只需要几十秒。
步骤3:启动Docker Desktop
-
打开“启动台”(Launchpad),找到刚安装的Docker图标(蓝色鲸鱼),点击启动。
-
首次启动时,系统会弹窗提示“Docker Desktop想要接收键盘输入...”之类的权限请求,点击“允许”。
-
接着会要求输入你的Mac登录密码,以安装必要的特权帮助组件 。
-
随后会出现Docker订阅服务协议窗口,阅读后点击“Accept”接受 。
步骤4:等待引擎启动
接受协议后,Docker Desktop会开始启动引擎。你可以在屏幕右上角的菜单栏看到一个鲸鱼图标,它会一直动来动去,表示正在启动中。首次启动可能需要3-5分钟,请耐心等待 。当鲸鱼图标静止不动时,说明Docker已经就绪。
方法二:通过Homebrew Cask安装
如果你更喜欢在终端中完成一切,Homebrew Cask是最好的选择。不过需要注意,如果你之前用其他方式安装过Docker,可能会遇到冲突 。
Homebrew 的 Cask 已经支持 Docker for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装(推荐):
# 通过Homebrew Cask安装
brew install --cask docker
# 启动Docker应用程序
open /Applications/Docker.app
验证安装:
# 检查Docker状态
docker info
# 查看系统信息
docker system info
然后配置镜像加速器,就和windows版差不多了。
常见问题与解决方案
问题1:安装后启动,鲸鱼图标一直转圈
现象:Docker Desktop启动后,菜单栏的鲸鱼图标一直动来动去,始终无法稳定。
可能原因:可能是旧版本残留或组件损坏。如果版本在4.32-4.36之间,可能存在已知的证书问题 。
解决方法:
-
尝试重启电脑,很多时候重启能解决80%的问题。
-
如果重启无效,可以执行完整重装 :
brew update
brew reinstall --cask docker
问题2:容器无法启动,提示端口被占用
现象:运行 docker run -p 8080:80 nginx 之类的命令时,提示端口无法绑定。
可能原因:macOS Big Sur及更新版本中,某些低端口(如55555)被系统预留 。此外,如果宿主机上已经有其他程序占用了该端口(如本地运行的Nginx、Apache等),也会导致冲突。
解决方法:
-
更换映射端口,例如将
8080:80改为8081:80。 -
检查哪些程序占用了端口:
sudo lsof -i :8080,然后根据PID杀掉对应进程。 -
在Docker Desktop设置中,Advanced → Allow privileged port mapping(允许特权端口映射)勾选上 。
问题4:运行 docker 命令提示权限不足
现象:运行 docker ps 等命令时,提示 Got permission denied。
可能原因:这在macOS上比较少见,但如果你是通过命令行安装且配置有误,可能会遇到。
解决方法:确保Docker Desktop已经完全启动。在macOS上,Docker命令通常不需要 sudo,如果提示权限问题,先检查Docker Desktop状态 。
问题5:旧版本卸载不干净导致新安装失败
现象:安装过程中提示各种文件冲突。
解决方法:使用Docker Desktop自带的卸载功能,或者手动清理残留 :
# 停止所有Docker进程
sudo pkill -i docker
# 移除帮助工具
sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd
sudo rm /Library/PrivilegedHelperTools/com.docker.socket
# 然后重新安装
结语:准备好拥抱容器化
Docker为应用的容器化运行提供了完整的工具链,从环境搭建到容器管理,再到数据持久化,构建了现代化的应用部署体系。
一份常用的Docker容器一键启动配置文件:compose.ymal
数据卷映射可以进行更改,本配置文件是将容器数据映射到D:/DockerData/...,根据个人需求可以进行更改。
services:
redis:
image: redis:latest
container_name: redis-service
restart: always
ports:
- "6379:6379"
volumes:
- D:/DockerData/redis/data:/data
- D:/DockerData/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf
environment:
TZ: Asia/Shanghai
command: redis-server /usr/local/etc/redis/redis.conf
rabbitmq:
image: rabbitmq:4-management
container_name: rabbitmq-service
restart: always
ports:
- "5672:5672"
- "15672:15672"
volumes:
- D:/DockerData/rabbitmq/data:/var/lib/rabbitmq
environment:
TZ: Asia/Shanghai
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: 123456
mysql:
image: mysql:8.0
container_name: mysql-service
restart: always
ports:
- "3306:3306"
volumes:
- D:/DockerData/mysql/data:/var/lib/mysql
- D:/DockerData/mysql/conf:/etc/mysql/conf.d
environment:
MYSQL_ROOT_PASSWORD: 123456
TZ: Asia/Shanghai
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
postgres:
image: postgres:16
container_name: postgres-service
restart: always
ports:
- "5432:5432"
volumes:
- D:/DockerData/postgres/data:/var/lib/postgresql/data
- D:/DockerData/postgres/conf:/etc/postgresql/conf.d
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: 123456
POSTGRES_DB: postgres
TZ: Asia/Shanghai
command: -c shared_buffers=256MB -c max_connections=200
elasticsearch:
image: elasticsearch:8.11.3
container_name: elasticsearch-service
restart: always
ports:
- "9210:9200"
- "9300:9300"
volumes:
- D:/DockerData/elasticsearch/data:/usr/share/elasticsearch/data
- D:/DockerData/elasticsearch/plugins:/usr/share/elasticsearch/plugins
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms512m -Xmx1g
- TZ=Asia/Shanghai
- xpack.security.enabled=false
minio:
image: minio/minio:RELEASE.2025-04-08T15-41-24Z
container_name: minio-service
restart: always
ports:
- "9000:9000"
- "9001:9001"
volumes:
- D:/DockerData/minio/data:/data
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin123
TZ: Asia/Shanghai
command: server /data --console-address ":9001"
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)