Docker 从入门到进阶:各平台安装与国内镜像源配置全攻略
Docker 作为当今最流行的容器化技术,很多软件与服务都优先提供 Docker 版本,掌握它是每一名技术爱好者的必修课,然而,由于网络环境的原因,国内用户在使用 Docker 时常常遇到镜像拉取缓慢甚至失败的问题。
今天我们来详细介绍如何在各个主流平台上安装 Docker,并配置国内镜像源,让你的 Docker 使用体验原地起飞!
为什么要配置镜像源?
在开始之前,先了解为什么需要配置国内镜像源:
- 速度提升 - 从国内镜像源下载速度可达 10 MB/s 以上,而官方源可能只有几十 KB/s
- 稳定性好 - 避免连接超时、下载中断等问题
- 节省时间 - 大幅缩短镜像拉取时间,提高效率
Linux 平台安装与配置
Ubuntu/Debian 系统
步骤 1:卸载旧版本(如有)
sudo apt-get remove docker docker-engine docker.io containerd runc步骤 2:更新软件包索引并安装依赖
sudo apt-get update sudo apt-get install -y \ ca-certificates \ curl \ gnupg \ lsb-release步骤 3:添加 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步骤 4:设置 Docker 仓库
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null步骤 5:安装 Docker Engine
sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin步骤 6:验证安装
sudo docker run hello-world步骤 7:配置开机自启
sudo systemctl enable docker sudo systemctl start docker步骤 8:添加当前用户到 docker 组(可选但推荐,这样以后执行 docker 命令就不用再加 sudo 了)
sudo usermod -aG docker $USER newgrp docker2.2 CentOS/RHEL 系统
步骤 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:添加 Docker 仓库
sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo步骤 4:安装 Docker Engine
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin步骤 5:启动 Docker
sudo systemctl start docker sudo systemctl enable docker步骤 6:验证安装
sudo docker run hello-world配置 Linux 镜像源(通用方法)
方法一:修改 daemon.json 文件(推荐)
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.xuanyuan.me", "https://docker.1ms.run" ], "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" }, "storage-driver": "overlay2" } EOF重启 Docker 服务
sudo systemctl daemon-reload sudo systemctl restart docker验证配置
docker info | grep -A 10 "Registry Mirrors"Windows 平台安装与配置
系统要求
- Windows 10 64位:专业版、企业版或教育版(Build 19041或更高)
- Windows 11 64位
- 启用WSL 2功能
安装步骤
步骤 1:启用 WSL 2
以管理员身份打开 PowerShell,执行:
# 启用WSL dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 启用虚拟机平台 dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # 重启电脑后,设置WSL 2为默认版本 wsl --set-default-version 2步骤 2:下载 Docker Desktop
访问Docker官网下载:
https://www.docker.com/products/docker-desktop
或使用国内镜像下载:
阿里云:https://mirrors.aliyun.com/docker-toolbox/windows/docker-desktop/
步骤 3:安装 Docker Desktop
- 双击安装程序
Docker Desktop Installer.exe - 确保勾选 "Use WSL 2 instead of Hyper-V"
- 按照向导完成安装
- 安装完成后重启计算机
步骤 4:启动 Docker Desktop
从开始菜单启动 Docker Desktop,等待启动完成。
配置 Windows 镜像源
方法一:通过图形界面配置
- 右键点击系统托盘中的 Docker 图标
- 选择 "Settings" (设置)
- 点击左侧 "Docker Engine"
- 在 JSON 配置中添加镜像源:
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.xuanyuan.me", "https://docker.1ms.run" ] }- 点击 "Apply & Restart" 应用并重启
方法二:修改配置文件
配置文件位置:%USERPROFILE%\.docker\daemon.json
直接编辑该文件,添加上述配置内容。
验证配置
打开 PowerShell 或 CMD,执行:
docker info查看 "Registry Mirrors" 部分是否包含配置的镜像源。
macOS 平台安装与配置
系统要求
- macOS 11 或更高版本
- 至少 4GB RAM
- VirtualBox 4.3.30 之前版本不能与 Docker Desktop共存
安装步骤
步骤 1:下载 Docker Desktop
- 官方下载:https://www.docker.com/products/docker-desktop
- 选择对应芯片版本(Intel 或 Apple Silicon)
步骤 2:安装
- 打开下载的
.dmg文件 - 将 Docker 图标拖到 Applications文件夹
- 从 Applications 文件夹启动 Docker
- 授予必要的系统权限
步骤 3:验证安装
打开 Terminal,执行:
docker --version docker run hello-world配置 macOS 镜像源
方法一:通过图形界面
- 点击菜单栏 Docker 图标
- 选择 "Preferences" (偏好设置)
- 选择 "Docker Engine"
- 修改 JSON 配置:
{ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } }, "experimental": false, "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.xuanyuan.me", "https://docker.1ms.run" ] }- 点击 "Apply & Restart"
方法二:修改配置文件
配置文件位置:~/.docker/daemon.json
mkdir -p ~/.docker cat > ~/.docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.xuanyuan.me", "https://docker.1ms.run" ] } EOF验证配置
docker info | grep -A 5 "Registry Mirrors"国内主流镜像源推荐
可用镜像源列表
镜像源 | 地址 | 稳定性 | 速度 |
|---|---|---|---|
DaoCloud | https://docker.m.daocloud.io | ⭐⭐⭐⭐⭐ | 快 |
轩辕镜像 | https://docker.xuanyuan.me | ⭐⭐⭐⭐⭐ | 快 |
毫秒镜像 | https://docker.1ms.run | ⭐⭐⭐⭐⭐ | 快 |
Docker 镜像加速地址与 Docker 安装包(deb/rpm) 的软件源地址可不是一回事,别搞混了。镜像加速地址会随时失效,使用前最好进行测试,测试方法参考后文部分。
镜像源使用技巧
技巧 1:配置多个镜像源
配置多个镜像源可以互为备份,当一个源失败时自动切换到下一个:
{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://docker.xuanyuan.me", "https://docker.1ms.run" ] }技巧 2:测试镜像源速度
# 拉取测试镜像 time docker pull nginx:alpine # 清理测试镜像 docker rmi nginx:alpine技巧 3:临时使用镜像源
不修改配置文件,临时指定镜像源:
docker pull docker.m.daocloud.io/library/nginx:alpineDocker Compose 安装
Linux 安装 Docker Compose
Docker Compose 管理一组容器,让其像一个完整的系统一样运行。通过 docker-compose.yml 文件定义系统,通过一行命令启动所有服务。该文件由 YAML 写成.
方法一:使用 Docker 插件(推荐)
最新版 Docker 已内置 Compose 插件,直接使用:
docker compose version方法二:独立安装
# 下载最新版本 sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 添加执行权限 sudo chmod +x /usr/local/bin/docker-compose # 验证安装 docker-compose --version使用国内镜像加速下载:
sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-composeWindows 和 macOS
Docker Desktop 已经包含 Docker Compose,无需单独安装。
验证与测试
基础功能测试
# 查看Docker版本 docker --version # 查看系统信息 docker info # 运行测试容器 docker run hello-world # 拉取镜像测试速度 docker pull nginx:alpine # 查看已拉取的镜像 docker images # 运行Nginx容器 docker run -d -p 8080:80 nginx:alpine # 访问测试(浏览器打开 http://localhost:8080)镜像源生效验证
# 查看配置的镜像源 docker info | grep -i "registry" # 或者 docker system info --format '{{.RegistryConfig.Mirrors}}'性能对比测试
测试脚本:
#!/bin/bash echo "测试镜像拉取速度..." # 清理已有镜像 docker rmi redis:alpine 2>/dev/null # 测试拉取时间 echo "开始拉取 redis:alpine..." time docker pull redis:alpine echo "拉取完成!"常见问题与解决方案
权限问题
问题: 执行 docker 命令需要 sudo
解决方案:
sudo usermod -aG docker $USER newgrp docker # 或者重新登录系统镜像拉取失败
问题: 出现 "Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout"
解决方案:
- 检查镜像源配置是否正确
- 尝试更换其他镜像源
- 检查网络连接和防火墙设置
# 重启 Docker 服务 sudo systemctl restart docker # 查看 Docker 日志 sudo journalctl -u docker.serviceWindows WSL 2 问题
问题: Docker Desktop启动失败,提示WSL 2相关错误
解决方案:
# 更新WSL wsl --update # 检查WSL版本 wsl --list --verbose # 设置默认WSL版本为2 wsl --set-default-version 2端口占用问题
问题: 容器端口映射失败
解决方案:
# Linux查看端口占用 sudo netstat -tulpn | grep :端口号 sudo lsof -i :端口号 # Windows查看端口占用 netstat -ano | findstr :端口号磁盘空间问题
问题: Docker 占用大量磁盘空间
解决方案:
# 查看磁盘使用情况 docker system df # 清理未使用的镜像、容器、网络 docker system prune -a # 清理所有未使用的卷 docker volume prune进阶配置
以下内容如需配置都应写入/etc/docker/daemon.json(Linux)、~/.docker/daemon.json(macOS)文件中,修改配置后需要重启 docker 服务才会生效。
配置日志驱动
{ "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" } }配置存储驱动
{ "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ] }限制容器资源
{ "default-ulimits": { "nofile": { "Name": "nofile", "Hard": 64000, "Soft": 64000 } } }配置私有镜像仓库
{ "insecure-registries": [ "192.168.1.100:5000" ] }修改默认存储路径
{ "data-root": "/data/docker" }最佳实践建议
安全建议
- 定期更新 Docker 到最新版本
- 不要以 root 用户运行容器
- 使用官方或可信任的镜像
- 扫描镜像漏洞:
docker scan 镜像名
性能优化
- 使用多阶段构建减小镜像体积
- 合理配置镜像层缓存
- 使用
.dockerignore排除不必要的文件 - 定期清理无用镜像和容器
日常维护
# 每周执行一次清理 docker system prune -a --volumes # 查看Docker占用空间 docker system df -v # 更新所有镜像 docker images | grep -v REPOSITORY | awk '{print $1":"$2}' | xargs -L1 docker pull常用命令参考
镜像操作
# 搜索镜像 docker search nginx # 拉取镜像 docker pull nginx:alpine # 查看本地镜像 docker images # 删除镜像 docker rmi 镜像ID # 导出镜像 docker save -o nginx.tar nginx:alpine # 导入镜像 docker load -i nginx.tar # 给镜像打标签 docker tag nginx:alpine myrepo/nginx:v1容器操作
# 运行容器 docker run -d --name mynginx -p 80:80 nginx # 查看运行中的容器 docker ps # 查看所有容器 docker ps -a # 停止容器 docker stop 容器ID # 启动容器 docker start 容器ID # 重启容器 docker restart 容器ID # 删除容器 docker rm 容器ID # 查看容器日志 docker logs -f 容器ID # 进入容器 docker exec -it 容器ID /bin/bash写在最后
看到这里,相信在 Windows、macOS 和 Linux 上安装 Docker 并配置中国区镜像源已不再成为问题。至于群晖或其它 NAS 系统,Docker 的安装与配置和 Windows 平台大同小异,甚至更简单,就不再赘述了。
通过使用国内的镜像源,可以显著提高 Docker 镜像的下载速度。相比之前的应用部署方式,Docker 提供了一个高效、便捷、纯粹的环境来构建和部署应用,而通过简单的配置,就能避免由于网络问题导致的下载延迟。
如果你在 Docker 安装和配置过程中遇到问题,可以查看 Docker 官方文档,或者通过社区寻求帮助,也可以在评论区留言交流哦~