#Docker Compose
共 42 篇文章
Docker Compose 2.24.5 多层 extends 报 Circular reference
Docker Compose 2.24.5 的多层 extends 可能误报循环引用。区分真实引用环与历史版本故障,用 config 校验原入口,并在更新插件后复核完整模型及依赖资源。
写了 depends_on 仍连不上 PostgreSQL:检查地址、就绪与初始化
区分容器启动、TCP 就绪和初始化完成,解释服务名、健康检查以及官方 PostgreSQL 镜像临时 socket 进程对连接失败的影响。
Docker Compose 报 additional_contexts is not allowed
Compose 在构建前拒绝 additional_contexts 时,核对 2.17.0 的功能门槛、build 字段层级与实际解析器;保留命名上下文,并分别验证配置和镜像构建。
Docker 端口已被占用:改了 Compose 映射为什么仍报错
从网友修改测试端口后仍冲突的案例出发,检查 Compose 最终映射、其他容器和宿主机占用,并按工具版本选择配置修复办法。
Docker Compose 设置卷的 name 后,仍报 refers to undefined volume
Docker Compose 的卷已设置 name,却报 refers to undefined volume,常见原因是服务挂载引用了实际卷名,而非顶层 volumes 的配置键。保留固定内部键和动态 name,并核对真实挂载,避免接到新空卷。
Compose 卷名后加子目录报 undefined volume
命名卷短语法不会把斜杠后的内容当作子目录。核对 Engine 与 Compose 版本,使用 volume.subpath,并在挂载前准备目录、验证卷身份和数据位置。
PostgreSQL 容器报 could not resize shared memory segment
PostgreSQL 容器执行查询或维护时报共享内存无法扩展。核对容器内 /dev/shm、POSIX 内存实现和故障时用量,调整 Compose shm_size,保留镜像与数据挂载,并重建容器验证原操作。
Docker Compose 扩容时报 container name is already in use
Docker Compose 扩容遇到固定容器名冲突时,核对合并后的 container_name,移除固定名并按服务操作实例,同时检查端口、数据与缩容回退条件。
Docker Compose 使用自定义配置后,logs 报 no configuration file provided
Docker Compose 用自定义文件部署后,logs 找不到配置:显式指定原文件路径,区分文件选项与日志跟随选项,并核对项目名及多文件顺序。
Docker Compose 报 Additional property include is not allowed
Docker Compose 顶层 include 报不允许时,核对实际插件版本与执行入口,区分文件 version 字段,并用配置校验检查引入文件、路径及资源名称。
Docker Compose exec 报 the input device is not a TTY
Docker Compose exec 在管道、文件重定向或定时任务中报 the input device is not a TTY。区分伪终端与标准输入,按任务需要使用 -T,并处理通过 stdin 读取 Compose 配置时的交互冲突。
Docker 单文件挂载后,容器读到的配置没有更新
宿主机保存了配置,Docker 容器仍读到旧内容。单文件绑定挂载遇到文件替换时可能保留旧对象;通过挂载路径、内容摘要和 inode 缩小范围,再选择重建容器或改为专用目录挂载。
Docker Compose 2.29.6 报 extra_hosts array items must be unique
Docker Compose 2.29.6 在继承或多文件合并后可能报 extra_hosts 条目不唯一。沿配置来源区分重复声明与版本缺陷,保留必要映射,并在更新插件后核对实际合并结果。
Docker 挂载目录报 Permission denied:确认 SELinux 标签与共享范围
Docker bind mount 报 Permission denied 时,先核对普通权限与 SELinux 审计,再决定私有 Z 或共享 z 标签、容器重建及宿主标签恢复范围。
Docker Compose run 启动后 ports 未映射到宿主机
Compose 文件声明了 ports,但 run 默认不为任务容器发布这些端口。通过容器 ID 核对映射,再选择 --service-ports、临时 -p 映射或 up 启动常驻服务。
Docker Compose 启动 bash 后立即 Exited (0),无法 exec 进入容器
开发镜像以 bash 为主进程,docker compose up -d 后立即 Exited (0),exec 会因容器未运行而失败。核对实际启动命令,按长期开发 shell 或一次性终端选择 stdin_open、tty 和 compose run,并保全重建前的数据。
Docker Compose 报 start_interval is not allowed
healthcheck 的 start_interval 需要 Compose 2.20.2 起的解析支持,启动阶段调度还要求 Engine 25.0 及以上。核对实际版本、兼容替代配置和重建后的健康检查状态。
Docker Compose 报 depends_on 的 required 属性不被允许
旧版 Docker Compose 无法识别 depends_on.required。确认实际插件版本、保留可选依赖和健康条件,避免删掉 required 后又触发 profile 禁用错误。
Docker Compose 2.32.1 使用 extends 后丢失 depends_on
Compose 2.32.1 中,服务同时使用 extends 与 depends_on 时,显式依赖可能从最终配置中消失。说明如何核对渲染结果、确认修复版本,并在无法更新时展开继承,保留初始化等待条件。
Docker Compose 覆盖网络配置后报 network_mode 与 networks 互斥
覆盖文件新增 networks 不会自动删除基础文件的 network_mode。通过 !reset 清除继承值,核对实际 Compose 版本、文件顺序及切换网络后的通信变化。


