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最省心。

安装步骤很简单:

  1. 去Docker官网下载Docker Desktop for Mac(Intel芯片或Apple Silicon版本要选对)
  2. 双击.dmg文件,把Docker图标拖到Applications文件夹
  3. 打开Docker Desktop,它会请求权限,全部允许就行
  4. 等右上角的小鲸鱼图标稳定下来,就说明启动成功了

重要提醒: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内存

安装流程:

  1. 下载Docker Desktop for Windows安装包
  2. 双击安装,一路Next
  3. 安装完成后重启电脑
  4. 启动Docker Desktop,接受协议
  5. 它会自动启用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了——镜像和容器的基本操作,到时候我会分享更多实战中的小技巧。