容器部署
共 203 篇文章
Docker 登录成功,push 仍 denied:检查镜像是否带 Docker Hub namespace
登录成功只证明认证完成。推送目标若落到 docker.io/library,应为本地镜像添加有写入权限的 namespace 标签。
Docker Compose 写了两个 command,初始化命令没有执行
Docker Compose 同一服务重复写 command 不能按顺序执行初始化和主程序。说明单个 command 配合 sh -c、初始化失败阻断、ENTRYPOINT 参数冲突,以及重建后的验证和数据回退边界。
Podman rootless 发布低端口报 permission denied:检查 Linux VM 的权限阈值
Podman rootless 发布低端口报 permission denied 时,核对实际 Linux 或 machine VM 的端口阈值,按客户端能力改高端口,或由管理员评估绑定策略。
kubectl apply 大型 CRD 报 annotations Too long:处理客户端配置注解
大型 CRD apply 报 annotations Too long 时,区分 schema 与客户端生成的配置注解,评估服务端 apply、字段管理冲突和现有资源恢复边界。
Docker 挂载配置文件报 not a directory:为什么宿主机多了一个同名目录
配置文件挂载时报 not a directory,核对 Compose 最终路径、源文件类型与容器目标,用 create_host_path: false 阻止误建目录,再重建和验证受影响的服务。
Docker Compose 把卷名写进 depends_on 后报 undefined service
depends_on 必须引用 services 下的服务名。数据库服务叫 database、数据卷叫 db 时,应修正依赖引用,保留原卷与挂载,再用相同部署参数校验配置。
Kubernetes Service 没有可用后端:核对 Pod 标签与 EndpointSlice 就绪状态
Service 端口没错却没有可用后端,先对照实际 Pod 标签与 namespace,再检查 EndpointSlice 就绪条件和目标监听端口。
Secret 已存在仍挂载失败:items.key 要匹配数据键,不是目标文件名
Secret对象存在仍报references non-existent secret key时,区分源数据键与items.path、subPath、应用路径,修正映射并保留凭据轮换条件。
Docker 设置 --cpus=1 后,nproc 仍显示多个处理器
--cpus 限制 CPU 时间配额,--cpuset-cpus 限制可调度的处理器集合。核对 Docker 配置与 nproc 实现,区分 GNU coreutils 9.8 的 cgroup v2 行为。
Docker Compose 环境变量报 contains true, which is an invalid type
Compose 环境变量报 contains true, which is an invalid type 时,检查 environment 映射中的裸布尔值。用引号保留字符串,核验最终配置,并区分类型校验通过与应用开关实际生效。
Docker COPY 无法读取构建上下文外的文件
Dockerfile 使用 COPY ../ 读取父目录文件时,传统构建器会拒绝越界,BuildKit 则会去掉越界路径。按构建上下文调整源路径,并核对 Compose 配置与 .dockerignore。
ARM64 主机构建 Docker 镜像时,/bin/sh 报 exec format error
ARM64 Linux 主机构建镜像时,第一条 RUN 就报 /bin/sh: exec format error,可先核对构建节点、基础镜像平台与模拟能力,再选择原生 ARM64 或明确的 amd64 构建路径。
Compose 服务能解析内网域名,构建 RUN 却解析失败
服务 networks 不决定构建 RUN 的网络。区分 BuildKit 网络模式与项目网络,并在固定端点场景配置构建侧名称映射。
Docker Compose 启动时报 no service selected
Compose 文件中的服务都设置了 profiles,却没有启用匹配的 profile 时,up 可能报 no service selected。对比服务列表,按需启用 profile、指定服务,或恢复核心服务的默认启动方式。
Docker 交互容器第一次按 Ctrl-P 无法调出历史命令
Docker 默认脱离序列以 Ctrl-P 开头,会影响交互容器中的历史快捷键。用 --detach-keys 更换当前连接的序列,并区分客户端配置、终端映射和退出主进程。
Kubernetes drain 被 PDB 阻止:单副本与零中断预算无法自动腾出节点
kubectl drain 因单副本与零中断预算反复被拒绝时,核对 PDB 状态与就绪副本,选择受支持的冗余或停机流程,保留健康与不健康 Pod 的驱逐区别。
Docker Compose 修改环境变量后,restart 仍使用旧值
Docker Compose 修改 environment 或 env_file 后,restart 不会更新已有容器的环境。区分最终配置、容器环境与应用行为,再重建指定服务,并核对数据保留和回退条件。
Job 一直 ImagePullBackOff 不结束:backoffLimit 不限制拉取次数
Job 等待错误镜像时,拉取事件不计作容器运行失败,backoffLimit 无法限制总等待。区分 Pod 与 Job 两层期限,并核对 DeadlineExceeded 和终止影响。
Docker apt-get 安装报 404:分开的 update 层可能复用了旧索引
Docker 构建的 apt-get 安装返回软件包 404,检查 update 是否命中旧缓存。合并更新和安装,区分基础镜像刷新及软件源错误。


