2、Docker安装:在Linux(Ubuntu/CentOS)上安装Docker、在macOS上安装Docker Desktop、在Windows上安装Docker Desktop、验证安装
好,咱们直接进入正题。安装Docker这件事,说简单也简单,说坑也多。我这些年帮团队搭过不下几十次环境,每次换新机器都得走一遍流程。今天就把我踩过的坑和总结的经验,一次性给你讲清楚。
2.1 在Linux上安装Docker(Ubuntu / CentOS)
Linux是Docker的老家,跑起来最稳。我个人习惯在生产环境只用Linux,不用Docker Desktop。为什么呢?因为Linux原生支持容器,没有中间层,性能损耗最小。
2.1.1 Ubuntu安装Docker
Ubuntu用户最幸福,官方支持最好。我建议用官方仓库安装,别用系统自带的旧版本。
核心步骤:
# 1. 卸载旧版本(如果有)
sudo apt-get remove docker docker-engine docker.io containerd runc
# 2. 更新包索引
sudo apt-get update
# 3. 安装依赖包
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# 4. 添加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
# 5. 设置稳定版仓库
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
# 6. 安装Docker引擎
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
我的经验:第4步的GPG密钥路径,不同Ubuntu版本可能不一样。如果你用的是20.04以下的老版本,记得把路径改成 /etc/apt/keyrings 不存在时,先手动创建这个目录。我曾经在这上面卡了半小时,后来发现是目录权限问题。
2.1.2 CentOS安装Docker
CentOS用户注意了,Docker官方已经不再支持CentOS 8了(因为CentOS 8生命周期结束)。如果你还在用CentOS 7,没问题,但建议尽快迁移到Rocky Linux或AlmaLinux。
# 1. 卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2. 安装yum-utils
sudo yum install -y yum-utils
# 3. 设置仓库
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 4. 安装Docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 5. 启动Docker
sudo systemctl start docker
sudo systemctl enable docker
避坑指南:我曾经在CentOS 7上遇到过SELinux导致容器无法启动的问题。如果你发现docker run报权限错误,先检查SELinux状态:getenforce。临时关闭可以用 setenforce 0,但生产环境建议配置正确的SELinux策略,而不是直接关闭。
2.2 在macOS上安装Docker Desktop
macOS用户,说实话,Docker Desktop是唯一的选择。虽然也有其他方案(比如Podman),但Docker Desktop最省心。
安装步骤很简单:
- 去Docker官网下载Docker Desktop for Mac(Intel芯片或Apple Silicon版本要选对)
- 双击.dmg文件,把Docker图标拖到Applications文件夹
- 打开Docker Desktop,它会请求权限,全部允许就行
- 等右上角的小鲸鱼图标稳定下来,就说明启动成功了
重要提醒:M1/M2芯片的Mac用户,一定要下载Apple Silicon版本。我见过有人用Rosetta转译跑Intel版,结果容器启动慢得像蜗牛。而且有些老镜像不支持ARM架构,需要加 --platform linux/amd64 参数。
2.3 在Windows上安装Docker Desktop
Windows上的Docker Desktop,说白了就是跑在Hyper-V虚拟机里的Linux。所以前提条件很明确:
- Windows 10/11 专业版、企业版或教育版(家庭版不行,除非你手动装WSL2)
- 开启硬件虚拟化(BIOS里要打开VT-x/AMD-V)
- 至少4GB内存
安装流程:
- 下载Docker Desktop for Windows安装包
- 双击安装,一路Next
- 安装完成后重启电脑
- 启动Docker Desktop,接受协议
- 它会自动启用WSL2(如果没启用,会提示你安装Linux内核更新包)
我的建议:Windows用户最好用WSL2后端,别用Hyper-V。为什么?因为WSL2启动更快,资源占用更少,而且可以和Windows文件系统无缝交互。你想想看,在Windows里写代码,容器里跑服务,文件共享不用折腾,多舒服。
注意:如果你之前装过Docker Toolbox(那个老古董),一定要先彻底卸载。我遇到过有人新旧版本冲突,导致Docker Desktop启动不了。卸载后记得重启,再装新版。
2.4 验证安装
装完了,怎么知道好不好使?别急,三步验证法,我每次装完都这么干:
2.4.1 检查版本信息
# 查看Docker版本
docker --version
# 查看更详细的信息
docker version
# 查看系统信息(包括容器数量、镜像数量等)
docker info
如果能看到版本号,说明安装成功了。嗯,这里要注意:docker version 会显示Client和Server两部分信息。如果Server部分报错,说明Docker守护进程没启动。
2.4.2 运行Hello World
这是Docker的经典测试,说白了就是拉一个最小的镜像,跑一个容器:
docker run hello-world
如果看到类似这样的输出,就说明一切正常:
Hello from Docker!
This message shows that your installation appears to be working correctly.
2.4.3 运行一个真正的容器
Hello World太简单了,我建议再跑个Nginx试试:
docker run -d -p 8080:80 nginx
然后打开浏览器,访问 http://localhost:8080。如果看到Nginx欢迎页,恭喜你,Docker环境完全可用。
避坑指南:我曾经在Windows上遇到端口被占用的问题。8080端口可能被其他程序占用了(比如某些开发工具)。这时候换个端口就行,比如 -p 8081:80。另外,macOS和Windows上,Docker Desktop默认会占用一些端口(比如443),注意别冲突。
2.5 安装后的必要配置
装完Docker,别急着跑。有几个配置我建议你立刻做:
| 配置项 | 命令/操作 | 说明 |
|---|---|---|
| 将用户加入docker组 | sudo usermod -aG docker $USER |
避免每次执行docker命令都要加sudo |
| 设置镜像加速器 | 修改 /etc/docker/daemon.json |
国内用户必备,不然拉镜像慢到哭 |
| 配置日志轮转 | 在daemon.json中添加log配置 | 防止日志撑爆磁盘 |
| 设置Docker开机自启 | sudo systemctl enable docker |
Linux系统需要手动设置 |
我的习惯:镜像加速器我推荐用阿里云或中科大的。配置方法很简单,在 /etc/docker/daemon.json 里加上:
{
"registry-mirrors": ["https://your-mirror.mirror.aliyuncs.com"]
}
改完记得重启Docker:sudo systemctl restart docker
好了,安装部分就到这里。你想想看,其实装Docker本身不难,难的是装完之后知道怎么配、怎么用。下一章咱们就开始真正玩转Docker了——镜像和容器的基本操作,到时候我会分享更多实战中的小技巧。