#Docker
共 146 篇文章
docker run --env-file 把值两边的引号传进了容器
Docker CLI 的环境文件保留引号和美元符号。容器读到带引号的路径或凭据时,按实际入口拆分文件格式,并用无敏感值的探针确认。
Dockerfile 中多行 shell heredoc 报 unknown instruction
Dockerfile 先解析指令,shell 引号不会把多行配置归入同一个 RUN。使用 BuildKit 的 COPY 或 RUN heredoc,或把静态文件放进构建上下文。
Compose 卷名后加子目录报 undefined volume
命名卷短语法不会把斜杠后的内容当作子目录。核对 Engine 与 Compose 版本,使用 volume.subpath,并在挂载前准备目录、验证卷身份和数据位置。
Compose 2.19 的 run --no-deps 仍报依赖 disabled:核对构建分支回归
Compose 2.19 的一次性任务即使使用 --no-deps,构建分支仍可能报依赖 disabled。核对插件版本、真实 profiles 与 2.20.0 已包含的处理顺序修复。
PostgreSQL 容器报 could not resize shared memory segment
PostgreSQL 容器执行查询或维护时报共享内存无法扩展。核对容器内 /dev/shm、POSIX 内存实现和故障时用量,调整 Compose shm_size,保留镜像与数据挂载,并重建容器验证原操作。
Docker 串口报 Permission denied:检查设备 GID 与进程附加组
串口已映射但应用 Permission denied,核对设备数字 GID、业务进程附加组和入口身份,通过最小 group-add 与设备映射处理,保留隔离与硬件验收限制。
Docker Compose 扩容时报 container name is already in use
Docker Compose 扩容遇到固定容器名冲突时,核对合并后的 container_name,移除固定名并按服务操作实例,同时检查端口、数据与缩容回退条件。
Docker Compose 报 Additional property include is not allowed
Docker Compose 顶层 include 报不允许时,核对实际插件版本与执行入口,区分文件 version 字段,并用配置校验检查引入文件、路径及资源名称。
Docker 本地能构建,Cloud Run 找不到 requirements.txt:检查上传忽略规则
本地 Docker 能构建,Cloud Run 源码构建却找不到 requirements.txt 时,检查 gcloud 上传清单和 .gcloudignore 引入的 Git 忽略规则;用精确例外保留构建文件。
Docker Compose exec 报 the input device is not a TTY
Docker Compose exec 在管道、文件重定向或定时任务中报 the input device is not a TTY。区分伪终端与标准输入,按任务需要使用 -T,并处理通过 stdin 读取 Compose 配置时的交互冲突。
Docker COPY 使用通配符后,符号链接变成普通文件
BuildKit 直接选中的源链接会被解引用。改为复制专用父目录,保留目录内部链接及目标布局,并检查多阶段产物、绝对链接和最终文件类型。
docker cp 报 lstat no such file:文件在家目录,命令却从根目录运行
docker cp 报本地源文件不存在时,先核对 Docker CLI 的当前目录。区分运行期复制与构建上下文,并检查目标路径、覆盖影响和文件内容。
Docker 设置 --memory 后,free 仍显示宿主机总内存
区分 free 的系统内存视图与容器 cgroup 限额,检查 Docker 保存的配置和 cgroup v2 控制文件,避免把显示总量当成限制失效。
Docker 单文件挂载后,容器读到的配置没有更新
宿主机保存了配置,Docker 容器仍读到旧内容。单文件绑定挂载遇到文件替换时可能保留旧对象;通过挂载路径、内容摘要和 inode 缩小范围,再选择重建容器或改为专用目录挂载。
docker commit 后新容器缺少文件:挂载卷不会打入镜像
容器挂载目录的文件不会随 docker commit 或 export 带走。核对实际卷名,同机重新挂载,跨主机分离备份与镜像,并保留一致性和回退条件。
Docker Compose 2.29.6 报 extra_hosts array items must be unique
Docker Compose 2.29.6 在继承或多文件合并后可能报 extra_hosts 条目不唯一。沿配置来源区分重复声明与版本缺陷,保留必要映射,并在更新插件后核对实际合并结果。
Docker build 已传 build-arg,FROM 后的变量仍为空
Docker 构建参数传入后仍为空,可能是 ARG 只声明在首个 FROM 之前。区分全局与阶段作用域、阶段继承及 ENV 覆盖,给出默认值和显式值的验证方式。
Docker Compose 报 service_completed_successfully 是无效条件
depends_on 拒绝 service_completed_successfully 时,核对实际调用的 Compose 版本和路径,区分旧独立程序与插件,保留迁移成功完成的启动条件。
Docker 挂载目录报 Permission denied:确认 SELinux 标签与共享范围
Docker bind mount 报 Permission denied 时,先核对普通权限与 SELinux 审计,再决定私有 Z 或共享 z 标签、容器重建及宿主标签恢复范围。
Docker 容器启动后,宿主机新挂载的 USB 目录仍显示为空
Linux Docker bind mount 默认 rprivate,不会接收后来创建的子挂载。核对宿主机 shared 条件,再选择 rslave 单向传播或先挂载后创建容器。


