#Docker
共 146 篇文章
Docker 挂载报 mount path must be absolute
Linux 容器的挂载目标必须是绝对路径。区分宿主 source 与容器 target,通过 Compose 长语法核对最终配置,避免 working_dir 和宿主路径掩盖错误。
Docker logs 没有应用日志,容器中的 nohup.out 却一直增长
nohup.out 有日志而 docker logs 没内容时,区分应用文件输出与 Docker 日志驱动;保留现有日志,再调整前台运行、标准流或持久文件采集。
Alpine 容器 tar 报 Operation not permitted:检查 fchmodat2 与运行时策略
Alpine 容器 tar 报 Operation not permitted 时,区分文件权限与 fchmodat2 策略拒绝,核对实际 Docker、BuildKit 和 libseccomp,撤回放宽隔离的诊断例外。
Docker 构建在大 UID 的 useradd 步骤卡住并大量占用磁盘
Linux 镜像创建大 UID 账号时,lastlog 或 faillog 初始化可能产生巨大稀疏记录并拖慢层处理。使用支持该选项的 useradd --no-log-init,保留原身份并验证磁盘占用。
Docker run 加 -t 后,标准错误混进标准输出文件
Docker 分配伪终端后,应用 stdout 和 stderr 会合并。移除 -t、按需保留 -i,并区分应用日志、客户端错误和已有容器的 TTY 配置。
docker top 和容器内 ps 显示不同 PID,按进程号诊断时找不到目标
docker top 与容器内 ps 使用不同的 PID 视角。限定原生 Linux 环境,用命名空间状态字段核对对应关系,避免读错 /proc 路径或复用已过期的进程号。
Docker BuildKit 构建最终镜像时跳过测试阶段
Dockerfile 写了测试阶段却没有执行:BuildKit 只构建目标需要的阶段。通过显式测试目标或调整发布依赖接入测试,并区分阶段被跳过与缓存复用。
Docker 自动重启后仍有旧文件,--restart 与 --rm 冲突
重启同一容器会保留可写层;每轮干净执行应由调度器新建容器。先区分可写层和挂载数据,并在使用 --rm 前保留产物、日志及匿名卷数据。
Docker 入口脚本存在却报 no such file or directory
Docker 启动时报入口脚本不存在,文件和执行权限却正常。核对目录挂载、首行 CRLF 与镜像内解释器,修正实际来源文件,并用 Git 属性固定 LF;保留文件备份和服务回退路径。
Docker Compose 启动 bash 后立即 Exited (0),无法 exec 进入容器
开发镜像以 bash 为主进程,docker compose up -d 后立即 Exited (0),exec 会因容器未运行而失败。核对实际启动命令,按长期开发 shell 或一次性终端选择 stdin_open、tty 和 compose run,并保全重建前的数据。
Dockerfile 没写 requirements.txt,构建仍在 ONBUILD 阶段报文件缺失
检查基础镜像登记的 ONBUILD 触发指令,区分父镜像构建约定与子 Dockerfile 内容,再选择准备输入或更换基础镜像。
Docker Compose 报 start_interval is not allowed
healthcheck 的 start_interval 需要 Compose 2.20.2 起的解析支持,启动阶段调度还要求 Engine 25.0 及以上。核对实际版本、兼容替代配置和重建后的健康检查状态。
Docker COPY --from 变量未展开:把参数用于 FROM 并引用阶段别名
COPY --from 的 ARG 变量保留为字面引用,不能用 RUN 的展开结果判断。改成参数化 FROM 来源阶段,再用稳定别名复制文件。
Docker Compose 报 depends_on 的 required 属性不被允许
旧版 Docker Compose 无法识别 depends_on.required。确认实际插件版本、保留可选依赖和健康条件,避免删掉 required 后又触发 profile 禁用错误。
Docker 派生镜像新增 ENTRYPOINT 后,入口脚本收不到基础镜像的 CMD
派生 Dockerfile 设置新的 ENTRYPOINT 时,基础镜像的 CMD 会被清空。对照镜像与容器启动字段,在当前镜像中声明默认命令,并保留原入口的初始化要求。
Docker Compose 2.32.1 使用 extends 后丢失 depends_on
Compose 2.32.1 中,服务同时使用 extends 与 depends_on 时,显式依赖可能从最终配置中消失。说明如何核对渲染结果、确认修复版本,并在无法更新时展开继承,保留初始化等待条件。
Dockerfile ADD 使用 SHA-512 校验时报 digest mismatch
HTTP ADD 的 checksum 只支持 SHA-256。区分算法不支持与同算法内容不符,取得可信预期摘要,保留现有 SHA-512 验证要求。
docker exec 报容器 is paused:命令不会等待解除暂停
paused 容器仍显示 Up,但 exec 会直接失败。先确认暂停是否由备份或维护流程持有,再用 unpause 恢复同一容器,检查进程和业务状态。
Docker 挂载含空格路径时报 invalid reference format
未加引号的挂载路径遇到空格,会被 shell 拆成多个参数,让路径片段落到镜像位置。为完整挂载值加双引号,并在测试目录核对实际源路径与只读挂载。


