跳到主要内容Docker 多平台安装与镜像源配置指南 | 极客日志Shell / Bash
Docker 多平台安装与镜像源配置指南
Docker 在 Linux、Windows、macOS 系统的安装步骤及国内镜像源配置方法,涵盖 Docker Compose 安装、常见问题排查及进阶配置建议,旨在帮助开发者解决国内网络环境下镜像拉取缓慢的问题。
内存管理20 浏览 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
systemctl start docker
sudo
步骤 8:添加当前用户到 docker 组(可选但推荐)
sudo usermod -aG docker $USER
newgrp docker
CentOS/RHEL 系统
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
sudo systemctl enable docker
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
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 功能
安装步骤
# 启用 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
- 双击安装程序
Docker Desktop Installer.exe
- 确保勾选 "Use WSL 2 instead of Hyper-V"
- 按照向导完成安装
- 安装完成后重启计算机
从开始菜单启动 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
查看 "Registry Mirrors" 部分是否包含配置的镜像源。
macOS 平台安装与配置
系统要求
- macOS 11 或更高版本
- 至少 4GB RAM
- VirtualBox 4.3.30 之前版本不能与 Docker Desktop 共存
安装步骤
- 打开下载的
.dmg 文件
- 将 Docker 图标拖到 Applications 文件夹
- 从 Applications 文件夹启动 Docker
- 授予必要的系统权限
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"
]
}
配置文件位置:~/.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"
国内主流镜像源推荐
可用镜像源列表
Docker 镜像加速地址与 Docker 安装包(deb/rpm)的软件源地址可不是一回事,别搞混了。镜像加速地址会随时失效,使用前最好进行测试,测试方法参考后文部分。
镜像源使用技巧
配置多个镜像源可以互为备份,当一个源失败时自动切换到下一个:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.xuanyuan.me",
"https://docker.1ms.run"
]
}
time docker pull nginx:alpine
docker rmi nginx:alpine
docker pull docker.m.daocloud.io/library/nginx:alpine
Docker Compose 安装
Linux 安装 Docker Compose
Docker Compose 管理一组容器,让其像一个完整的系统一样运行。通过 docker-compose.yml 文件定义系统,通过一行命令启动所有服务。该文件由 YAML 写成。
最新版 Docker 已内置 Compose 插件,直接使用:
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 --version
docker info
docker run hello-world
docker pull nginx:alpine
docker images
docker run -d -p 8080:80 nginx:alpine
镜像源生效验证
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 "拉取完成!"
常见问题与解决方案
权限问题
sudo usermod -aG docker $USER
newgrp docker
镜像拉取失败
- 检查镜像源配置是否正确
- 尝试更换其他镜像源
- 检查网络连接和防火墙设置
sudo systemctl restart docker
sudo journalctl -u docker.service
Windows WSL 2 问题
问题: Docker Desktop 启动失败,提示 WSL 2 相关错误
wsl --update
wsl --list --verbose
wsl --set-default-version 2
端口占用问题
sudo netstat -tulpn | grep :端口号
sudo lsof -i :端口号
netstat -ano | findstr :端口号
磁盘空间问题
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 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
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online