容器部署
共 203 篇文章
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 时,显式依赖可能从最终配置中消失。说明如何核对渲染结果、确认修复版本,并在无法更新时展开继承,保留初始化等待条件。
Minikube 报 ErrImageNeverPull:宿主机镜像还没进入节点缓存
宿主Docker能运行但Minikube报ErrImageNeverPull时,核对目标profile和节点镜像库,按当前运行时导入明确标签,避免只改拉取策略。
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 拆成多个参数,让路径片段落到镜像位置。为完整挂载值加双引号,并在测试目录核对实际源路径与只读挂载。
NodePort 改成 Local 后部分节点不通:检查本地端点与负载均衡
externalTrafficPolicy 为 Local 时,全局有后端也不能让无本地端点的节点转发;核对 EndpointSlice 与外部负载均衡检查,并保留源 IP 需求。
Docker Compose 覆盖网络配置后报 network_mode 与 networks 互斥
覆盖文件新增 networks 不会自动删除基础文件的 network_mode。通过 !reset 清除继承值,核对实际 Compose 版本、文件顺序及切换网络后的通信变化。
Dockerfile COPY 后执行 chmod 报 Operation not permitted
COPY成功后,非root用户执行chmod仍可能因文件默认属于UID0而失败。核对实际USER与属主,通过复制时设置模式或限定安装身份修复,并保留非root运行。
Docker Compose 使用 network_mode: service 时发布端口报冲突
Web 容器使用 network_mode: service:db 后,独立配置 ports 会触发 port publishing 与 container type network mode 冲突。将映射移到网络提供方,并检查监听地址、容器重建与数据库就绪条件。
Kubernetes Secret 报 illegal base64 data:先核对真正提交的清单
Kubernetes Secret 创建报非法 Base64 时,核对真正提交的文件与 data 字段,区分 stringData、编码文本换行和原始凭据换行,保留更新与隐私边界。


