Files
docker_practice/appendix/faq/errors.md
T
yeasy 51698c89c5 fix(content): correct verified internal inconsistencies across 7 sections
均为书内自证的矛盾,无需外部来源:

- 19.3: golang:1.26-alpine 标注为 ~1GB,但 21.7 将 ~900MB 归给非 alpine 的
  golang:1.26,且 7.17 实测 alpine 版镜像为 295MB——alpine 变体不可能大于其
  非 alpine 版本。改为与 21.7 一致的「golang:1.26 基础镜像的 ~900MB」。
- 20_cases_os: 正文称通用镜像 100-300 MB,紧邻的表格却列 Ubuntu ~80 MB
  (与 4.2 的 ubuntu 24.04 78MB 一致)。正文改为 80-300 MB。
- 4.2: 「查找大于 500MB 的镜像」的 ^[0-9]+GB 不匹配小数,会漏掉 docker 实际
  输出的全部 x.yGB(本书自己的示例即为 2.5GB)。补充可选小数部分。
- 6.2: docker image ls 示例输出把 tag 混入 REPOSITORY 列
  (127.0.0.1:5000/ubuntu:latest + TAG latest),与同块 ubuntu/latest 行及
  本节自述的 tag 格式不符。
- 5.3: 生命周期状态图缺 Stopped --> Running,而 5.3.6 正是讲 docker start
  启动已停止的容器;原图中停止的容器只能被删除。
- 9.5: 端口映射图节点标签 "容器 (Class B: 80)" 语义错乱(Class B 是 IP 地址
  分类,与端口无关),改为「容器 (端口: 80)」。
- appendix/faq/errors.md: 标题「常见错误速查表」与 SUMMARY.md 及 faq/README
  两处链接文字「常见错误处理」不一致(全书 196 篇中唯一一处标题漂移)。
2026-07-16 23:20:25 -07:00

1.8 KiB

常见错误处理

错误信息 / 现象 可能原因 解决方案
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? Docker 服务未启动 Linux: sudo systemctl start docker
Mac/Win: 启动 Docker Desktop
permission denied while trying to connect to the Docker daemon socket 当前用户无权访问 Docker socket 临时使用 sudo docker ...,或确认风险后执行 sudo usermod -aG docker $USER 并重新登录;docker 用户组等同授予 root 级权限,安全要求较高的环境优先评估 Rootless mode
manifest for ... not found: manifest unknown 镜像 tag 不存在 检查 Docker Hub 该镜像是否存在该 tag,或拼写是否正确
connection refused (pull image) 网络不通或镜像源无法访问 检查网络,配置镜像加速器
Bind for 0.0.0.0:8080 failed: port is already allocated 端口被占用 检查占用端口的进程 (lsof -i:8080) 并杀掉,或换个端口映射 (-p 8081:80)
exec user process caused "exec format error" 架构不匹配 (如在 x86 上跑 ARM 镜像) 使用 docker buildx 构建多架构镜像,或拉取对应架构的镜像
standard_init_linux.go:211: exec user process caused "no such file or directory" 找不到解释器或依赖库 检查 ENTRYPOINT/CMD 脚本开头的 shebang (#!/bin/sh vs #!/bin/bash),或确认二进制文件是否依赖缺失 (Alpine 常见缺少 glibc)
iptables: No chain/target/match by that name 防火墙规则缺失或冲突 重启 Docker 服务重置 iptables 链: sudo systemctl restart docker
容器内无法访问外网 DNS 配置或转发问题 检查 /etc/docker/daemon.json 中的 DNS 配置