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
☹️ 未解决!