# 如何给docker换源

**URL:** <https://forum.beginner.center/t/topic/2620>\
**Category:** 🛠工具与编程\
**Tags:** docker\
**Created:** [2026 年1 月 28 日 10:03 UTC](https://forum.beginner.center/t/topic/2620 "2026-01-28T10:03:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![doggie](https://forum.beginner.center/user_avatar/forum.beginner.center/doggie/32/550_2.png) [@doggie](https://forum.beginner.center/u/doggie)\
发布日期： [2026 年1 月 28 日 10:03 UTC](https://forum.beginner.center/t/topic/2620/1 "2026-01-28T10:03:58Z")

</div>

> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码， 原文地址 [wxhzhwxhzh.github.io](https://wxhzhwxhzh.github.io/sao/study/docker_huanyuan.html)

> Asao VitePress Site

## 目录 ​

- 什么是 Docker 镜像源
- 为什么需要换源
- 常用的国内镜像源
- 换源方法
- 验证配置
- 常见问题解决
- 实际使用示例

## 什么是 Docker 镜像源 ​

Docker 镜像源（Registry Mirror）是 Docker 镜像的存储和分发服务。默认情况下，Docker 使用官方的 Docker Hub（`registry-1.docker.io`）作为镜像源。

当我们执行 `docker pull redis` 时，Docker 实际上是从 `registry-1.docker.io/library/redis` 下载镜像。

## 为什么需要换源 ​

在中国大陆使用 Docker Hub 官方源经常遇到以下问题：

1. **网络速度慢** ：下载镜像耗时很长
2. **连接超时** ：经常出现 `context deadline exceeded` 错误
3. **连接不稳定** ：下载过程中断，需要重复尝试

因此，使用国内的镜像加速器可以大大提升 Docker 使用体验。

## 常用的国内镜像源 ​

| 提供商 | 镜像地址 | 说明 |
| --- | --- | --- |
| 阿里云 | `https://xxxxxx.mirror.aliyuncs.com` | 需要注册获取专属地址 |
| 腾讯云 | `https://mirror.ccs.tencentyun.com` | 公共服务 |
| 网易 | `https://hub-mirror.c.163.com` | 公共服务 |
| 中科大 | `https://docker.mirrors.ustc.edu.cn` | 公共服务 |
| 七牛云 | `https://reg-mirror.qiniu.com` | 公共服务 |
| DaoCloud | `https://f1361db2.m.daocloud.io` | 公共服务 |

## 换源方法 ​

### 方法一：配置 Docker 镜像加速器（推荐） ​

这是最常用和推荐的方法，配置一次后所有 `docker pull` 命令都会使用加速器。

#### Linux 系统配置 [​](#linux-%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE)

1. **创建或编辑 Docker 配置文件**

2. **添加镜像源配置**

3. **重启 Docker 服务**

#### Windows 系统配置 [​](#windows-%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE)

1. 右键点击系统托盘中的 Docker Desktop 图标

2. 选择 “Settings” 或 “设置”

3. 在左侧菜单中选择 “Docker Engine”

4. 在 JSON 配置中添加镜像源：

5. 点击 “Apply & Restart”

#### macOS 系统配置 [​](#macos-%E7%B3%BB%E7%BB%9F%E9%85%8D%E7%BD%AE)

1. 点击系统菜单栏中的 Docker Desktop 图标
2. 选择 “Preferences” 或 “偏好设置”
3. 选择 “Docker Engine”
4. 添加镜像源配置（同 Windows）
5. 点击 “Apply & Restart”

### 方法二：使用阿里云个人镜像加速器 ​

阿里云提供个人专属的镜像加速器，速度通常更快且更稳定。

1. **注册阿里云账号** 访问 [阿里云容器镜像服务](https://cr.console.aliyun.com/)

2. **获取专属加速器地址**

3. **配置加速器** 按照页面提供的操作文档配置，通常是修改 `/etc/docker/daemon.json`：

### 方法三：直接使用国内镜像仓库 ​

如果不想修改全局配置，可以直接从国内镜像仓库拉取：

bash

```auto
# 从阿里云拉取
docker pull registry.cn-hangzhou.aliyuncs.com/library/redis:latest

# 从腾讯云拉取
docker pull ccr.ccs.tencentyun.com/library/redis:latest

# 重新标记为常用名称
docker tag registry.cn-hangzhou.aliyuncs.com/library/redis:latest redis:latest

```

## 验证配置 ​

### 检查镜像源配置 ​

bash

```auto
# 查看 Docker 信息，确认镜像源配置
docker info

# 查找 Registry Mirrors 部分
docker info | grep -A 10 "Registry Mirrors"

```

正确配置后应该看到类似输出：

```auto
Registry Mirrors:
 https://hub-mirror.c.163.com/
 https://docker.mirrors.ustc.edu.cn/

```

### 测试下载速度 ​

bash

```auto
# 删除本地镜像（如果存在）
docker rmi redis:latest

# 测试下载速度
time docker pull redis:latest

```

### 测试镜像源连通性 ​

bash

```auto
# 测试网易镜像源
curl -I https://hub-mirror.c.163.com/v2/

# 测试中科大镜像源
curl -I https://docker.mirrors.ustc.edu.cn/v2/

# 正常返回应该是 HTTP/1.1 200 OK 或 HTTP/2 200

```

## 常见问题解决 ​

### 问题 1：DNS 解析失败 ​

**错误信息：**

```auto
Could not resolve host: mirror.ccs.tencentyun.com

```

**解决方法：**

1. 检查网络连接

2. 更换 DNS 服务器：

3. 使用其他可用的镜像源

### 问题 2：镜像源不可用 ​

**错误信息：**

```auto
Error response from daemon: Get https://xxx: dial tcp: lookup xxx on 127.0.0.53:53: no such host

```

**解决方法：**

1. 测试镜像源可用性
2. 从配置中移除不可用的源
3. 使用多个镜像源作为备选

### 问题 3：权限不足 ​

**错误信息：**

```auto
Got permission denied while trying to connect to the Docker daemon socket

```

**解决方法：**

bash

```auto
# 将用户添加到 docker 组
sudo usermod -aG docker $USER

# 重新登录或执行
newgrp docker

```

### 问题 4：配置文件格式错误 ​

**错误信息：**

```auto
unable to configure the Docker daemon with file /etc/docker/daemon.json

```

**解决方法：**

1. 检查 JSON 格式是否正确
2. 使用在线 JSON 验证工具检查语法
3. 确保文件编码为 UTF-8

## 实际使用示例 ​

### 示例 1：拉取常用镜像 ​

bash

```auto
# 拉取不同版本的镜像
docker pull redis:latest
docker pull redis:6.2
docker pull nginx:alpine
docker pull mysql:8.0
docker pull node:16

# 查看下载的镜像
docker images

```

### 示例 2：构建包含基础镜像的 Dockerfile ​

dockerfile

```auto
# Dockerfile
FROM node:16-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 3000
CMD ["npm", "start"]

```

bash

```auto
# 构建镜像
docker build -t my-node-app .

```

### 示例 3：使用 docker-compose ​

yaml

```auto
# docker-compose.yml
version: '3.8'

services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
  
  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

```

bash

```auto
# 启动服务
docker-compose up -d

```

## 最佳实践建议 ​

1. **使用多个镜像源** ：配置多个镜像源作为备选，提高可用性
2. **定期测试** ：定期测试镜像源的可用性和速度
3. **选择稳定的源** ：优先选择大厂提供的镜像源，如阿里云、腾讯云
4. **个人专属源** ：对于企业用户，建议使用阿里云等提供的个人专属加速器
5. **备份配置** ：备份 Docker 配置文件，便于在不同环境中快速部署

## 总结 ​

通过配置 Docker 镜像加速器，可以显著提升在中国大陆使用 Docker 的体验。推荐使用配置文件的方式进行全局设置，这样一次配置，所有的 Docker 操作都能享受加速服务。

如果遇到问题，可以按照本教程的故障排除部分进行诊断和解决。记住，不同的镜像源可能在不同时间段有不同的表现，保持配置的灵活性很重要。
