# Docker 拉取失败:配置镜像加速 构建时若出现 `failed to fetch oauth token`、`dial tcp ... connectex` 等无法连接 `auth.docker.io` 的错误,多半是网络无法访问 Docker Hub。 ## 本仓库已做的默认处理 - **admin** 与 **backend** 的 Dockerfile 已默认使用国内镜像源拉取基础镜像:`docker.mirrors.ustc.edu.cn/library/node:20-alpine`、`docker.mirrors.ustc.edu.cn/library/python:3.12-slim`。多数情况下可直接执行 `docker-compose up -d` 构建。 - 若你环境能直连 Docker Hub、希望用官方镜像,可执行: ```bash docker-compose build --build-arg NODE_IMAGE=node:20-alpine --build-arg PYTHON_IMAGE=python:3.12-slim docker-compose up -d ``` 若仍报错(例如 USTC 镜像在你网络不可用),可再按下面方式配置 Docker daemon 的镜像加速。 ## 方式一:Docker Desktop(推荐) 1. 打开 **Docker Desktop** → **Settings**(设置)→ **Docker Engine**。 2. 在 JSON 里为 `"registry-mirrors"` 增加一个镜像地址,例如: ```json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] } ``` 3. 点击 **Apply & Restart**,等待重启完成。 4. 回到项目根目录重新执行:`docker-compose up -d`。 ## 方式二:Linux 直接改 daemon 配置 编辑 `/etc/docker/daemon.json`(没有则新建),加入: ```json { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] } ``` 然后执行: ```bash sudo systemctl daemon-reload sudo systemctl restart docker ``` ## 镜像源说明 - 上面为常见公共镜像,可用性以当前网络为准。 - 若使用阿里云 ECS,可在容器镜像服务里申请**专属加速地址**,替换到 `registry-mirrors` 中,通常更稳定。 配置完成后再次运行: ```powershell docker-compose up -d ``` 若仍失败,可尝试开代理或换网络环境后再试。