Skip to content

Docker 常见问题解决

⚠️ 创建 WORKDIR 提示无权限

需要调整 WORKDIR 的权限。

bash
RUN mkdir -p /usr/src/app && chown -R node:node /usr/src/app
WORKDIR /usr/src/app

⚠️ 在 Windows 上运行报错

bash
...
symlink ..\cross-env\src\bin\cross-env.js C:\your_local_www_dir\node_modules\.bin\cross-env:

A required privilege is not held by the client.
...

这通常是由于 Windows 系统的权限问题,特别是在操作符号链接(symlink)时。Windows 在创建符号链接时通常需要管理员权限或特殊权限。

以“以管理员身份运行 PowerShell”,然后再执行相同命令即可解决。

⚠️ 无法访问 https://registry-1.docker.io/v2/

先在命令行执行docker login登陆,再尝试运行之前的命令。

⚠️ Post "https://auth.docker.io/token": dial tcp 108.160.166.62:443: i/o timeout

bash
  multi-container-app git:(main)  docker compose up -d
[+] Building 30.1s (3/3) FINISHED                                                                                                        docker:desktop-linux
 => [todo-app internal] load build definition from Dockerfile                                                                                            0.0s
 => => transferring dockerfile: 1.24kB                                                                                                                   0.0s
 => ERROR [todo-app] resolve image config for docker-image://docker.io/docker/dockerfile:1                                                              30.1s
 => [todo-app auth] docker/dockerfile:pull token for registry-1.docker.io                                                                                0.0s
------
 > [todo-app] resolve image config for docker-image://docker.io/docker/dockerfile:1:
------
failed to solve: DeadlineExceeded: DeadlineExceeded: DeadlineExceeded: failed to resolve source metadata for docker.io/docker/dockerfile:1: failed to authorize: DeadlineExceeded: failed to fetch oauth token: Post "https://auth.docker.io/token": dial tcp 108.160.166.62:443: i/o timeout

☹️ 未解决!

Released under the MIT License.