中国大陆Docker镜像源修改方案

从你的测试来看,虽然 Docker 已经配置了镜像加速器(中科大和网易),但尝试直接从中科大镜像站拉取时,却出现了 DNS 解析失败no such host),这说明:

🔍 问题原因

  1. DNS 无法解析 docker.mirrors.ustc.edu.cn
    • 你的服务器可能无法访问中科大镜像站的域名(可能是 DNS 污染或网络限制)。
  2. 镜像加速器虽然配置了,但 Docker 仍然回退到 registry-1.docker.io
    • 如果镜像加速器无法访问,Docker 会尝试直接连接 Docker Hub,导致超时。

✅ 解决方案

1. 修复 DNS 解析问题

先测试是否能解析中科大镜像站域名:

1
ping docker.mirrors.ustc.edu.cn

如果返回 unknown host,说明 DNS 解析失败。
解决方法

  • 临时修改 DNS(测试用):
    1
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    然后再次尝试:
    1
    docker pull docker.mirrors.ustc.edu.cn/corentinth/it-tools:2024.10.22-7ca5933
  • 永久修改 DNS(推荐):
    1
    2
    3
    4
    sudo tee /etc/resolv.conf <<-'EOF'
    nameserver 8.8.8.8 # Google DNS
    nameserver 114.114.114.114 # 国内 DNS
    EOF
    然后重启 Docker:
    1
    sudo systemctl restart docker

2. 尝试其他国内镜像源

如果中科大镜像站不可用,可以尝试:

  • 网易镜像(已在你的配置中):
    1
    docker pull hub-mirror.c.163.com/corentinth/it-tools:2024.10.22-7ca5933
  • 阿里云镜像(需登录):
    1
    docker pull registry.cn-hangzhou.aliyuncs.com/corentinth/it-tools:2024.10.22-7ca5933

3. 直接使用代理(如果可行)

如果你的服务器可以访问外网,可以配置 Docker 使用代理:

1
2
3
4
5
6
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/proxy.conf <<-'EOF'
[Service]
Environment="HTTP_PROXY=http://你的代理IP:端口"
Environment="HTTPS_PROXY=http://你的代理IP:端口"
EOF

然后重启 Docker:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

4. 终极方案:手动下载并导入镜像

如果以上方法都失败:

  1. 在能访问外网的机器上拉取镜像
    1
    docker pull corentinth/it-tools:2024.10.22-7ca5933
  2. 导出镜像
    1
    docker save corentinth/it-tools:2024.10.22-7ca5933 > it-tools.tar
  3. 传输到目标服务器(如 scp):
    1
    scp it-tools.tar root@你的服务器IP:/tmp/
  4. 在目标服务器导入
    1
    docker load < /tmp/it-tools.tar

📌 总结

问题 解决方案 命令示例
DNS 解析失败 修改 /etc/resolv.conf nameserver 8.8.8.8
中科大镜像站不可用 改用网易或阿里云镜像 hub-mirror.c.163.com/corentinth/it-tools:2024.10.22-7ca5933
网络限制 使用代理或手动导入 Environment="HTTP_PROXY=..."

推荐步骤

  1. 先修复 DNS8.8.8.8 + 114.114.114.114)。
  2. 尝试网易镜像hub-mirror.c.163.com)。
  3. 如果仍然失败,考虑 代理或手动导入

如果仍然有问题,可能是该镜像在国内镜像站不存在,建议换版本或换镜像源。

时间: 2025-04-20T23:09:07


👤 用户

services:
mysql:
image: mysql:8.4.5
container_name: ${CONTAINER_NAME}
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD}
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:3306
volumes:
- ./data/:/var/lib/mysql
- ./conf/my.cnf:/etc/my.cnf
- ./log:/var/log/mysql
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
createdBy: “Apps”
command:
- –mysql-native-password=on
networks:
1panel-network:
external: true

我在中国大陆,拉取不到镜像,帮我修改下源

时间: 2025-04-20T22:27:49


🤖 DeepSeek (deepseek-chat)

在中国大陆拉取 Docker 官方镜像可能会比较慢或受限,你可以将 MySQL 镜像替换为国内镜像源的地址。以下是修改后的 docker-compose.yml 文件,使用了国内常用的镜像源:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
services:
mysql:
image: registry.cn-hangzhou.aliyuncs.com/library/mysql:8.4.5 # 使用阿里云镜像
container_name: ${CONTAINER_NAME}
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD}
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:3306
volumes:
- ./data/:/var/lib/mysql
- ./conf/my.cnf:/etc/my.cnf
- ./log:/var/log/mysql
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
createdBy: "Apps"
command:
- --mysql-native-password=on
networks:
1panel-network:
external: true

其他可选方案:

  1. 使用华为云镜像

    1
    image: swr.cn-east-2.myhuaweicloud.com/library/mysql:8.4.5
  2. 使用腾讯云镜像

    1
    image: ccr.ccs.tencentyun.com/library/mysql:8.4.5
  3. 配置 Docker 国内镜像加速器(推荐):
    如果你希望所有镜像都从国内源拉取,可以配置 Docker 的镜像加速器:

    • 编辑 /etc/docker/daemon.json(如果没有则新建):
      1
      2
      3
      4
      5
      6
      7
      {
      "registry-mirrors": [
      "https://registry.cn-hangzhou.aliyuncs.com",
      "https://mirror.ccs.tencentyun.com",
      "https://docker.mirrors.ustc.edu.cn"
      ]
      }
    • 重启 Docker 服务:
      1
      2
      sudo systemctl daemon-reload
      sudo systemctl restart docker

这样配置后,你仍然可以使用原始的 mysql:8.4.5 镜像名称,Docker 会自动从国内镜像源拉取。

时间: 2025-04-20T22:27:49


👤 用户

stderr: mysql Pulling mysql Error pull access denied for registry.cn-hangzhou.aliyuncs.com/library/mysql, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied Error response from daemon: pull access denied for registry.cn-hangzhou.aliyuncs.com/library/mysql, repository does not exist or may require ‘docker login’: denied: requested access to the resource is denied

时间: 2025-04-20T22:30:42


🤖 DeepSeek (deepseek-chat)

这个错误表明 registry.cn-hangzhou.aliyuncs.com/library/mysql 镜像不存在,或者需要登录阿里云 Docker Registry。

解决方法

方案 1:直接使用国内镜像加速(推荐)

修改 docker-compose.yml,使用 官方镜像,但通过 国内 Docker 镜像加速器 拉取:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
services:
mysql:
image: mysql:8.4.5 # 仍然用官方镜像,但通过镜像加速器拉取
container_name: ${CONTAINER_NAME}
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${PANEL_DB_ROOT_PASSWORD}
networks:
- 1panel-network
ports:
- ${PANEL_APP_PORT_HTTP}:3306
volumes:
- ./data/:/var/lib/mysql
- ./conf/my.cnf:/etc/my.cnf
- ./log:/var/log/mysql
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
createdBy: "Apps"
command:
- --mysql-native-password=on
networks:
1panel-network:
external: true

然后配置 Docker 镜像加速器(适用于所有镜像):

  1. 编辑 /etc/docker/daemon.json(如果没有则新建):
    1
    2
    3
    4
    5
    6
    7
    {
    "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn", # 中科大镜像
    "https://hub-mirror.c.163.com", # 网易镜像
    "https://mirror.baidubce.com" # 百度镜像
    ]
    }
  2. 重启 Docker:
    1
    2
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  3. 重新拉取镜像:
    1
    docker-compose pull

方案 2:使用阿里云 MySQL 镜像(需要登录)

如果仍想使用阿里云镜像,可以尝试:

1
image: registry.cn-hangzhou.aliyuncs.com/acs/mysql:8.4.5

但可能需要先登录阿里云 Docker Registry:

1
docker login --username=<你的阿里云账号> registry.cn-hangzhou.aliyuncs.com

(如果没有阿里云账号,建议直接用 方案 1


方案 3:使用其他国内 MySQL 镜像

  • 华为云
    1
    image: swr.cn-south-1.myhuaweicloud.com/library/mysql:8.4.5
  • 腾讯云
    1
    image: ccr.ccs.tencentyun.com/mysql/mysql-server:8.4.5
    (如果镜像不存在,可尝试 docker search mysql 查找可用的国内镜像)

总结

推荐方案 1(配置 Docker 镜像加速器),这样以后所有镜像(如 mysqlnginxredis 等)都能快速拉取。
如果仍然失败,可以尝试:

1
docker pull mysql:8.4.5 --registry-mirror=https://docker.mirrors.ustc.edu.cn

或者降级 MySQL 版本(如 mysql:8.0),因为 8.4.5 可能在某些镜像站未同步。

时间: 2025-04-20T22:30:42


👤 用户

root@FN:~# docker pull registry.cn-guangzhou.aliyuncs.com/acs/mysql:8.4.5
Error response from daemon: manifest for registry.cn-guangzhou.aliyuncs.com/acs/mysql:8.4.5 not found: manifest unknown: manifest unknown

时间: 2025-04-20T22:46:30


🤖 DeepSeek (deepseek-chat)

这个错误说明 registry.cn-guangzhou.aliyuncs.com/acs/mysql:8.4.5 镜像不存在,可能是阿里云没有同步该版本,或者镜像路径不正确。

解决方案

1. 检查 MySQL 8.4.5 是否存在于国内镜像

MySQL 8.4.5 是较新的版本,国内镜像可能尚未同步。你可以:

  • 降级到稳定版本(如 mysql:8.0):

    1
    docker pull mysql:8.0

    然后在 docker-compose.yml 里修改:

    1
    image: mysql:8.0
  • 尝试其他国内镜像(如华为云、腾讯云):

    1
    2
    docker pull swr.cn-south-1.myhuaweicloud.com/library/mysql:8.0  # 华为云
    docker pull ccr.ccs.tencentyun.com/mysql/mysql-server:8.0 # 腾讯云

2. 直接使用官方镜像 + 国内加速器(推荐)

  1. 配置 Docker 镜像加速器(适用于所有镜像):
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sudo mkdir -p /etc/docker
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn", # 中科大
    "https://hub-mirror.c.163.com", # 网易
    "https://mirror.baidubce.com" # 百度
    ]
    }
    EOF
  2. 重启 Docker
    1
    2
    sudo systemctl daemon-reload
    sudo systemctl restart docker
  3. 拉取 MySQL 官方镜像
    1
    docker pull mysql:8.4.5
    (如果仍然失败,说明 8.4.5 版本可能尚未同步到国内,建议降级到 mysql:8.0

3. 手动下载并导入 MySQL 镜像

如果网络问题严重,可以:

  1. 找一台能访问外网的机器,拉取镜像:
    1
    docker pull mysql:8.4.5
  2. 导出镜像
    1
    docker save mysql:8.4.5 > mysql-8.4.5.tar
  3. 传输到目标服务器(如用 scp):
    1
    scp mysql-8.4.5.tar root@your-server:/tmp/
  4. 在目标服务器导入
    1
    docker load < /tmp/mysql-8.4.5.tar

总结

最佳方案配置 Docker 镜像加速器 + 使用 mysql:8.0(稳定版)
如果必须用 8.4.5,可以:

  • 尝试 docker pull mysql:8.4.5(依赖镜像加速)
  • 或者手动下载导入

你可以运行 docker search mysql 查看可用的国内镜像版本。

时间: 2025-04-20T22:46:30


👤 用户

stderr: it-tools Pulling it-tools Error Get “https://registry-1.docker.io/v2/“: read tcp 192.168.2.100:58012->3.94.224.37:443: read: connection reset by peer Error response from daemon: Get “https://registry-1.docker.io/v2/“: read tcp 192.168.2.100:58012->3.94.224.37:443: read: connection reset by peer

时间: 2025-04-20T22:54:50


🤖 DeepSeek (deepseek-chat)

这个错误表明你的服务器无法正常连接 Docker Hub(registry-1.docker.io,可能是由于 网络问题GFW 干扰。以下是几种解决方案:


✅ 解决方案

1. 配置 Docker 国内镜像加速器(推荐)

适用于所有镜像拉取问题,修改 Docker 配置,使用国内镜像源:

1
2
3
4
5
6
7
8
9
10
11
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn", # 中科大镜像
"https://hub-mirror.c.163.com", # 网易镜像
"https://mirror.baidubce.com", # 百度镜像
"https://registry.docker-cn.com" # Docker 中国官方镜像(可能已失效)
]
}
EOF

重启 Docker

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

然后重新拉取:

1
docker pull it-tools

2. 直接使用国内镜像(如果可用)

如果 it-tools 有国内镜像,可以直接拉取:

1
docker pull registry.cn-hangzhou.aliyuncs.com/corentinth/it-tools

(需先确认该镜像是否存在,可尝试 docker search it-tools


3. 使用代理(如果服务器可以科学上网)

如果你的服务器可以访问外网,可以配置 Docker 使用代理:

1
2
3
4
5
6
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<-'EOF'
[Service]
Environment="HTTP_PROXY=http://your-proxy-ip:port"
Environment="HTTPS_PROXY=http://your-proxy-ip:port"
EOF

重启 Docker

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

然后尝试:

1
docker pull it-tools

4. 手动下载并导入镜像(终极方案)

如果以上方法都失败:

  1. 在能访问外网的机器上拉取镜像
    1
    docker pull it-tools
  2. 导出镜像
    1
    docker save it-tools > it-tools.tar
  3. 传输到目标服务器(如 scp):
    1
    scp it-tools.tar root@your-server:/tmp/
  4. 在目标服务器导入
    1
    docker load < /tmp/it-tools.tar

📌 总结

方案 适用情况 推荐指数
1. 配置国内镜像加速 适用于所有镜像拉取问题 ⭐⭐⭐⭐⭐
2. 直接拉取国内镜像 如果镜像在国内仓库存在 ⭐⭐⭐
3. 使用代理 如果服务器可以科学上网 ⭐⭐
4. 手动导入镜像 网络完全不可用

建议优先尝试方案 1(配置镜像加速),如果仍然不行,再尝试其他方案。

时间: 2025-04-20T22:54:50


👤 用户

root@FN:~# docker pull corentinth/it-tools:2024.10.22-7ca5933
Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp.230.123.190:443: connect: connection refused

时间: 2025-04-20T23:02:58


🤖 DeepSeek (deepseek-chat)

这个错误表明你的服务器 无法连接 Docker Hub(registry-1.docker.io,可能是由于 网络问题、DNS 解析失败或防火墙限制。以下是几种解决方案:


✅ 解决方案

1. 配置 Docker 国内镜像加速器(推荐)

适用于所有镜像拉取问题,修改 Docker 配置,使用国内镜像源:

1
2
3
4
5
6
7
8
9
10
11
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn", # 中科大镜像
"https://hub-mirror.c.163.com", # 网易镜像
"https://mirror.baidubce.com", # 百度镜像
"https://registry.docker-cn.com" # Docker 中国官方镜像(可能已失效)
]
}
EOF

重启 Docker

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

然后重新拉取:

1
docker pull corentinth/it-tools:2024.10.22-7ca5933

2. 检查 DNS 解析

如果仍然失败,可能是 DNS 解析问题,尝试修改 /etc/resolv.conf

1
2
3
4
sudo tee /etc/resolv.conf <<-'EOF'
nameserver 8.8.8.8 # Google DNS
nameserver 114.114.114.114 # 国内 DNS
EOF

然后重启 Docker:

1
sudo systemctl restart docker

3. 使用代理(如果服务器可以科学上网)

如果你的服务器可以访问外网,可以配置 Docker 使用代理:

1
2
3
4
5
6
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<-'EOF'
[Service]
Environment="HTTP_PROXY=http://your-proxy-ip:port"
Environment="HTTPS_PROXY=http://your-proxy-ip:port"
EOF

重启 Docker

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

然后尝试:

1
docker pull corentinth/it-tools:2024.10.22-7ca5933

4. 手动下载并导入镜像(终极方案)

如果以上方法都失败:

  1. 在能访问外网的机器上拉取镜像
    1
    docker pull corentinth/it-tools:2024.10.22-7ca5933
  2. 导出镜像
    1
    docker save corentinth/it-tools:2024.10.22-7ca5933 > it-tools.tar
  3. 传输到目标服务器(如 scp):
    1
    scp it-tools.tar root@your-server:/tmp/
  4. 在目标服务器导入
    1
    docker load < /tmp/it-tools.tar

📌 总结

方案 适用情况 推荐指数
1. 配置国内镜像加速 适用于所有镜像拉取问题 ⭐⭐⭐⭐⭐
2. 检查 DNS 解析 如果镜像加速仍然失败 ⭐⭐⭐
3. 使用代理 如果服务器可以科学上网 ⭐⭐
4. 手动导入镜像 网络完全不可用

建议优先尝试方案 1(配置镜像加速),如果仍然不行,再尝试其他方案。

时间: 2025-04-20T23:02:58


👤 用户

我已经配置了镜像,但是每次拉取的时候 依然如下:
root@FN:~# docker pull corentinth/it-tools:2024.10.22-7ca5933
Error response from daemon: Get “https://registry-1.docker.io/v2/“: context deadline exceeded (Client.Timeout exceeded while awaiting headers)

时间: 2025-04-20T23:07:07


🤖 DeepSeek (deepseek-chat)

这个错误表明,虽然你配置了国内镜像加速器,但 Docker 仍然尝试从 registry-1.docker.io(Docker Hub 官方仓库)拉取镜像,并且连接超时。以下是可能的原因和解决方案:


🔍 可能的原因

  1. 镜像加速器未生效

    • Docker 可能仍然优先使用官方仓库。
    • 检查 daemon.json 是否配置正确,是否重启了 Docker。
  2. 该镜像在国内加速器中不存在

    • 国内镜像源可能没有同步 corentinth/it-tools:2024.10.22-7ca5933 这个特定版本。
  3. DNS 解析问题

    • 你的服务器可能无法正确解析 registry-1.docker.io
  4. 网络限制

    • 防火墙或 ISP 可能阻止了 Docker Hub 的连接。

✅ 解决方案

1. 确保镜像加速器已正确配置

运行以下命令检查当前生效的镜像源:

1
docker info | grep "Registry Mirrors" -A 2

如果输出不包含你配置的镜像源(如 docker.mirrors.ustc.edu.cn),说明配置未生效。
解决方法

  • 确保 /etc/docker/daemon.json 内容正确:
    1
    2
    3
    4
    5
    6
    7
    {
    "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
    ]
    }
  • 重启 Docker:
    1
    2
    sudo systemctl daemon-reload
    sudo systemctl restart docker

2. 强制使用国内镜像源

如果镜像加速器未生效,可以尝试直接指定镜像源:

1
docker pull docker.mirrors.ustc.edu.cn/corentinth/it-tools:2024.10.22-7ca5933

(如果镜像不存在,会返回 404 Not Found

3. 检查 DNS 解析

运行以下命令测试 DNS 解析:

1
nslookup registry-1.docker.io

如果解析失败,修改 /etc/resolv.conf

1
2
3
4
sudo tee /etc/resolv.conf <<-'EOF'
nameserver 8.8.8.8
nameserver 114.114.114.114
EOF

然后重启 Docker:

1
sudo systemctl restart docker

4. 使用代理(如果可行)

如果服务器可以访问外网,配置 Docker 使用代理:

1
2
3
4
5
6
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/proxy.conf <<-'EOF'
[Service]
Environment="HTTP_PROXY=http://你的代理IP:端口"
Environment="HTTPS_PROXY=http://你的代理IP:端口"
EOF

重启 Docker:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

5. 手动下载镜像(终极方案)

如果所有方法都失败:

  1. 在能访问外网的机器上拉取镜像:
    1
    docker pull corentinth/it-tools:2024.10.22-7ca5933
  2. 导出镜像:
    1
    docker save corentinth/it-tools:2024.10.22-7ca5933 > it-tools.tar
  3. 传输到目标服务器(如 scp):
    1
    scp it-tools.tar root@你的服务器IP:/tmp/
  4. 在目标服务器导入:
    1
    docker load < /tmp/it-tools.tar

📌 总结

问题原因 解决方案 命令示例
镜像加速未生效 检查 daemon.json 并重启 Docker sudo systemctl restart docker
镜像未同步到国内源 尝试直接拉取镜像源地址 docker pull docker.mirrors.ustc.edu.cn/corentinth/it-tools:2024.10.22-7ca5933
DNS 解析失败 修改 /etc/resolv.conf nameserver 8.8.8.8
网络限制 使用代理或手动导入镜像 Environment="HTTP_PROXY=..."

推荐步骤

  1. 先检查 docker info 确认镜像加速器是否生效
  2. 尝试直接指定国内镜像源(如中科大)。
  3. 如果仍然失败,尝试 代理或手动导入

如果问题依旧,可能是该镜像在国内源确实不存在,建议换版本或换镜像源。

时间: 2025-04-20T23:07:07


👤 用户

root@FN:# docker info | grep “Registry Mirrors” -A 2
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
https://hub-mirror.c.163.com/
root@FN:
# docker pull docker.mirrors.ustc.edu.cn/corentinth/it-tools:2024.10.22-7ca5933
Error response from daemon: Get “https://docker.mirrors.ustc.edu.cn/v2/“: dial tcp: lookup docker.mirrors.ustc.edu.cn: no such host

时间: 2025-04-20T23:09:07


🤖 DeepSeek (deepseek-chat)

从你的测试来看,虽然 Docker 已经配置了镜像加速器(中科大和网易),但尝试直接从中科大镜像站拉取时,却出现了 DNS 解析失败no such host),这说明:

🔍 问题原因

  1. DNS 无法解析 docker.mirrors.ustc.edu.cn
    • 你的服务器可能无法访问中科大镜像站的域名(可能是 DNS 污染或网络限制)。
  2. 镜像加速器虽然配置了,但 Docker 仍然回退到 registry-1.docker.io
    • 如果镜像加速器无法访问,Docker 会尝试直接连接 Docker Hub,导致超时。

✅ 解决方案

1. 修复 DNS 解析问题

先测试是否能解析中科大镜像站域名:

1
ping docker.mirrors.ustc.edu.cn

如果返回 unknown host,说明 DNS 解析失败。
解决方法

  • 临时修改 DNS(测试用):
    1
    echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
    然后再次尝试:
    1
    docker pull docker.mirrors.ustc.edu.cn/corentinth/it-tools:2024.10.22-7ca5933
  • 永久修改 DNS(推荐):
    1
    2
    3
    4
    sudo tee /etc/resolv.conf <<-'EOF'
    nameserver 8.8.8.8 # Google DNS
    nameserver 114.114.114.114 # 国内 DNS
    EOF
    然后重启 Docker:
    1
    sudo systemctl restart docker

2. 尝试其他国内镜像源

如果中科大镜像站不可用,可以尝试:

  • 网易镜像(已在你的配置中):
    1
    docker pull hub-mirror.c.163.com/corentinth/it-tools:2024.10.22-7ca5933
  • 阿里云镜像(需登录):
    1
    docker pull registry.cn-hangzhou.aliyuncs.com/corentinth/it-tools:2024.10.22-7ca5933

3. 直接使用代理(如果可行)

如果你的服务器可以访问外网,可以配置 Docker 使用代理:

1
2
3
4
5
6
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/proxy.conf <<-'EOF'
[Service]
Environment="HTTP_PROXY=http://你的代理IP:端口"
Environment="HTTPS_PROXY=http://你的代理IP:端口"
EOF

然后重启 Docker:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

4. 终极方案:手动下载并导入镜像

如果以上方法都失败:

  1. 在能访问外网的机器上拉取镜像
    1
    docker pull corentinth/it-tools:2024.10.22-7ca5933
  2. 导出镜像
    1
    docker save corentinth/it-tools:2024.10.22-7ca5933 > it-tools.tar
  3. 传输到目标服务器(如 scp):
    1
    scp it-tools.tar root@你的服务器IP:/tmp/
  4. 在目标服务器导入
    1
    docker load < /tmp/it-tools.tar

📌 总结

问题 解决方案 命令示例
DNS 解析失败 修改 /etc/resolv.conf nameserver 8.8.8.8
中科大镜像站不可用 改用网易或阿里云镜像 hub-mirror.c.163.com/corentinth/it-tools:2024.10.22-7ca5933
网络限制 使用代理或手动导入 Environment="HTTP_PROXY=..."

推荐步骤

  1. 先修复 DNS8.8.8.8 + 114.114.114.114)。
  2. 尝试网易镜像hub-mirror.c.163.com)。
  3. 如果仍然失败,考虑 代理或手动导入

如果仍然有问题,可能是该镜像在国内镜像站不存在,建议换版本或换镜像源。

时间: 2025-04-20T23:09:07



对话统计

  • 消息总数: 14 条
  • 处理状态: 成功转换