2、Docker安装与配置:在Linux/Windows/macOS上安装Docker、配置镜像加速器、验证安装

2.1 为什么安装Docker这件事值得认真对待?

说实话,我见过太多人在Docker安装这一步翻车了。不是装不上,就是装完跑不起来,最后折腾半天发现是环境没搞对。我自己刚开始接触Docker时,也曾在Windows上卡了整整一个下午——嗯,就是那个Hyper-V和WSL2的兼容性问题。

Docker的安装其实不复杂,但不同操作系统有各自的脾气。你想想看,Linux是亲儿子,Windows是养子,macOS算是半个亲戚。咱们得对症下药。

2.2 Linux上安装Docker(以Ubuntu为例)

Linux上安装Docker最省心。我个人习惯用官方脚本一键安装,干净利落。

核心步骤:

# 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

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

避坑指南:我曾经在CentOS上直接用yum安装,结果装了个老版本,后面踩了不少坑。建议始终从官方仓库安装最新稳定版。

2.3 Windows上安装Docker Desktop

Windows上的Docker安装,说白了就是两个选择:Docker Desktop或者WSL2后端。我个人推荐用Docker Desktop,省心。

Windows版本 推荐方式 注意事项
Windows 10/11 Pro/Enterprise Docker Desktop + Hyper-V 需要开启虚拟化
Windows 10/11 Home Docker Desktop + WSL2 需要安装WSL2内核
Windows Server 2016/2019 Docker EE(企业版) 需要管理员权限

安装步骤其实很简单:

  1. 去Docker官网下载Docker Desktop for Windows
  2. 双击安装包,一路Next
  3. 安装完成后重启系统
  4. 启动Docker Desktop,等待引擎启动

注意:Windows Home版用户记得先安装WSL2。我遇到过有人直接装Docker Desktop,结果报错说找不到Hyper-V,其实就是没装WSL2。

2.4 macOS上安装Docker Desktop

macOS用户就简单多了。Docker Desktop for Mac是唯一官方推荐的方式。我记得第一次在Mac上装Docker时,下载完dmg文件,拖到Applications文件夹就完事了——真的就这么简单。

# 安装完成后,验证一下
docker --version
# 输出示例:Docker version 24.0.6, build ed223bc

docker-compose --version
# 输出示例:Docker Compose version v2.21.0

小技巧:macOS上如果遇到Docker Desktop启动慢,可以试试在设置里把资源限制调低一点。我一般给Docker分配4GB内存和2个CPU核心,够用了。

2.5 配置镜像加速器(国内用户必看)

为什么要配置镜像加速器?说白了,Docker默认的镜像仓库在国外,你想想看,每次pull镜像都要翻山越岭,慢得让人抓狂。我在项目中遇到过,一个几百MB的镜像,不配加速器可能要下半小时,配了之后两三分钟搞定。

国内常用的镜像加速器有:

服务商 加速器地址 备注
阿里云 https://xxxxx.mirror.aliyuncs.com 需要注册获取专属地址
腾讯云 https://mirror.ccs.tencentyun.com 公有可用
中科大 https://docker.mirrors.ustc.edu.cn 教育网速度快
网易 http://hub-mirror.c.163.com 稳定可靠

配置方法也很简单:

# Linux/macOS 配置方法
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF

# 重启Docker使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker

Windows用户直接在Docker Desktop的设置里找Docker Engine,编辑JSON配置就行。

验证加速器是否生效:

docker info | grep -A 1 "Registry Mirrors"
# 输出应该显示你配置的镜像地址

2.6 验证安装是否成功

装完Docker,总得跑个Hello World验证一下吧?

# 经典测试命令
docker run hello-world

# 如果看到以下输出,说明安装成功:
# Hello from Docker!
# This message shows that your installation appears to be working correctly.

为什么会这样?因为docker run hello-world会从镜像仓库拉取一个测试镜像,然后运行它。如果整个过程顺利,说明你的Docker环境是OK的。

还可以跑个更实用的测试:

# 运行一个Nginx容器
docker run -d -p 8080:80 nginx

# 打开浏览器访问 http://localhost:8080
# 看到Nginx欢迎页面,说明一切正常

验证清单:

  • docker --version 能正常输出版本号
  • docker info 没有报错信息
  • docker run hello-world 能正常输出
  • docker ps 能列出运行中的容器

2.7 常见问题与解决方案

嗯,这里总结几个我踩过的坑:

  • 权限问题:Linux上每次都要sudo?把当前用户加入docker组就行:sudo usermod -aG docker $USER
  • 端口冲突:启动容器时端口被占用?换个端口或者先停掉占用端口的进程
  • 磁盘空间不足:Docker默认把数据存在/var/lib/docker,时间长了会占满磁盘。我习惯用docker system prune定期清理

最后提醒一句:安装完成后,记得检查一下Docker的日志。Windows和macOS上可以在Docker Desktop的Troubleshoot里查看,Linux上用journalctl -u docker。我曾经遇到过Docker引擎启动失败,查日志才发现是SELinux搞的鬼。

好了,安装配置这块就这些。下一步咱们就可以开始玩容器了。