Docker 作为当今最流行的容器化技术,很多软件与服务都优先提供 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 docker
2.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或更高)
安装步骤
步骤 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
- 1. 双击安装程序
Docker Desktop Installer.exe - 2. 确保勾选 "Use WSL 2 instead of Hyper-V"
步骤 4:启动 Docker Desktop
从开始菜单启动 Docker Desktop,等待启动完成。
配置 Windows 镜像源
方法一:通过图形界面配置
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.xuanyuan.me",
"https://docker.1ms.run"
]
}
- 5. 点击 "Apply & Restart" 应用并重启
方法二:修改配置文件
配置文件位置:%USERPROFILE%\.docker\daemon.json
直接编辑该文件,添加上述配置内容。
验证配置
打开 PowerShell 或 CMD,执行:
docker info
查看 "Registry Mirrors" 部分是否包含配置的镜像源。
macOS 平台安装与配置
系统要求
- • VirtualBox 4.3.30 之前版本不能与 Docker Desktop共存
安装步骤
步骤 1:下载 Docker Desktop
- • 官方下载:https://www.docker.com/products/docker-desktop
- • 选择对应芯片版本(Intel 或 Apple Silicon)
步骤 2:安装
- 2. 将 Docker 图标拖到 Applications文件夹
- 3. 从 Applications 文件夹启动 Docker
步骤 3:验证安装
打开 Terminal,执行:
docker --version
docker run hello-world
配置 macOS 镜像源
方法一:通过图形界面
- 2. 选择 "Preferences" (偏好设置)
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.xuanyuan.me",
"https://docker.1ms.run"
]
}
方法二:修改配置文件
配置文件位置:~/.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"
国内主流镜像源推荐
可用镜像源列表
| | | |
|---|
| https://docker.m.daocloud.io | | |
| https://docker.xuanyuan.me | | |
| | | |
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:alpine
Docker Compose 安装
Linux 安装 Docker Compose
Docker Compose 管理一组容器,让其像一个完整的系统一样运行。通过 docker-compose.yml 文件定义系统,通过一行命令启动所有服务。该文件由 YAML 写成,更多请参考DevOps 世界的“共同语言”: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-compose
Windows 和 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.service
Windows 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"
}
最佳实践建议
安全建议
性能优化
- • 使用
.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 官方文档,或者通过社区寻求帮助,也可以在评论区留言交流哦~
相关资源:
- • Docker 官方文档:https://docs.docker.com
- • Docker Hub:https://hub.docker.com
- • Docker 中文社区:https://www.docker.org.cn/
阅读原文:原文链接
该文章在 2025/12/10 18:29:31 编辑过