Docker bind mount 的挂载传播(rshared/rslave 等)在什么场景下必须配置?
围绕“Docker bind mount 的挂载传播(rshared/rslave 等)在什么场景下必须配置”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明容器内再挂载需要传播给宿主机的场景与选项含义。
Docker · 容器运行面试题第 1 页,显示第 1–46 题,共找到 46 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“Docker bind mount 的挂载传播(rshared/rslave 等)在什么场景下必须配置”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明容器内再挂载需要传播给宿主机的场景与选项含义。
围绕“如何限制 Docker 容器对磁盘的读写 IOPS 与吞吐量”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 --device-read-bps/--device-write-iops 的用法与 blkio cgroup 限制对象。
围绕“Docker 容器访问外网与端口映射背后 iptables NAT 规则是如何工作的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 MASQUERADE 出站与 DNAT 入站规则的生成时机。
本题解释Docker -m/--memory限制触发cgroup OOM killer的机制,说明主进程被杀时的表现(SIGKILL、退出码137),并给出通过docker inspect和dmesg验证的具体方法,同时区分容器存活与主进程被杀的情况。
围绕“同一宿主机上两个 Docker 容器互相访问的正确做法是什么,为什么不建议直接写死对方 IP”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明放入同一自定义网络用容器名解析的原因(IP 会变)。
围绕“排查 Docker 容器网络不通时,应该按什么顺序检查哪些配置与命令”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出从网络归属、DNS、端口映射到 iptables 的排查顺序。
本文解析 Docker 中 --cpu-shares 与 --cpus(CFS quota)在 CPU 争抢与空闲时的不同机制:shares 为相对权重软限制,cpus 为绝对硬限制;并通过场景和边界说明如何选择。
围绕“如何用 --cpuset-cpus 把 Docker 容器绑定到指定 CPU 核,这解决什么性能问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明绑核的用法与减少上下文切换/缓存失效的收益。
围绕“如何为 Docker 容器自定义 DNS 服务器与搜索域,哪些网络模式下生效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 --dns/--dns-search 的用法及在用户自定义网络中被嵌入式 DNS 代理的语义。
围绕“如何查看 Docker 容器健康检查的历史结果与失败输出,用于定位问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 inspect 中 State.Health.Log 的字段含义与解读。
围绕“Dockerfile 的 HEALTHCHECK 指令由哪些参数构成,状态如何流转”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 interval/timeout/start-period/retries 的语义与 starting→healthy/unh。
围绕“为什么 Docker 健康检查显示 unhealthy 时容器不会自动重启,如何与 restart policy 配”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明健康状态不触发重启的内置行为及与 --restart 的边界。
围绕“为什么 Docker 的 host 网络模式在 Docker Desktop(Mac/Windows)上行为与 Li”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明桌面版 Docker 运行在 Linux VM 中导致 host 指向 VM 而非真宿主机。
围绕“Docker 的 --init 选项解决了 PID 1 不回收僵尸子进程的问题,其原理是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 tini 作为 PID 1 转发信号并回收孤儿进程的机制。
围绕“如何为 Docker 容器配置日志轮转(max-size/max-file),全局与单容器配置如何覆盖”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 daemon.json 全局配置与 --log-opt 单容器覆盖关系。
围绕“Docker 日志驱动的 blocking 与 non-blocking 模式在日志洪峰时对应用有什么不同影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 blocking 可能阻塞应用而 non-blocking 可能丢日志(max-buffer-size)的取舍。
围绕“Docker 默认的 json-file 日志驱动有什么特点,为什么不配置会导致磁盘被打满”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明日志写入宿主机文件且无默认轮转的风险。
围绕“什么场景应把 Docker 日志驱动切换为 fluentd/syslog 等远端驱动,切换后对 docker log”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明集中式日志采集场景及非本地驱动下 docker logs 失效的代价。
围绕“使用非本地日志驱动时如何保留 docker logs 能力,Docker 的 dual logging 缓存如何开启”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 cache 模式在远端驱动下保留本地可读日志的机制与限制。
围绕“什么场景应该用 Docker 的 macvlan 网络而不是 bridge,它有什么硬性限制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明容器直接获得二层身份的场景(遗留系统直连)与父接口混杂模式/宿主机通信限制。
围绕“Docker 中 --memory 与 --memory-swap 组合使用时各取值代表什么语义”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释未设置、相等、设为 -1 等组合下 swap 可用量的计算规则。
围绕“Docker 容器基于命名空间的隔离与虚拟机隔离在安全边界上有什么本质区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须从共享内核角度对比隔离强度与逃逸面。
本题解释 Docker 容器使用哪些 Linux namespace 及各自隔离资源,涵盖 PID、NET、MNT、UTS、IPC、USER,并指出隔离的局限与适用场景。
围绕“Docker 的 bridge、host、none、container 四种网络模式分别适用什么场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须逐一说明四种模式的行为与典型场景。
围绕“如何控制 Docker 容器被 OOM killer 选中的优先级,--oom-kill-disable 有什么使用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 oom-score-adj 调整与禁用 OOM 的前提(必须设置内存限制)及风险。
围绕“Docker overlay 网络如何实现跨主机容器通信,依赖什么协议与端口”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 VXLAN 封装与 Swarm 控制面的依赖及所需端口。
本题解释Docker容器内主进程PID为1的成因,即PID命名空间隔离。重点分析PID1在信号处理和僵尸进程回收上的特殊性,对比容器默认缺少init系统带来的问题,并提供判断和应对方法。
围绕“Docker 的 --pids-limit 如何防御 fork 炸弹,默认值是多少”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明限制容器内 PID 总数的机制与内核默认行为。
围绕“Docker 的 -p 发布端口与 EXPOSE/--expose 在作用上有什么实际区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 EXPOSE 仅是元数据而 -p 建立宿主机端口映射与 iptables 规则。
围绕“为什么建议用只读方式挂载配置文件或宿主目录进容器,如何设置”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 :ro 与 --read-only 根文件系统的区别及安全收益。
围绕“Docker 的 --restart 各策略(no/always/on-failure/unless-stopped”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须逐一说明四种策略触发条件与 on-failure 重试计数语义。
本文解释 Docker 共享宿主机 PID 和 IPC 命名空间的典型场景:调试与 System V IPC 通信,以及隔离性损失的具体表现。给出判断准则:仅在单机调试或信任容器的场合使用,生产环境慎用,因为容器内可操纵宿主进程和 IPC 对象。
围绕“为什么用 shell 形式(exec sh -c)作为容器入口会导致主进程收不到 SIGTERM”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 shell 成为 PID 1 后信号不转发给子进程及 exec 形式/显式 exec 的解法。
围绕“直接用 docker kill 或超时被 SIGKILL 对容器内应用有什么数据风险,如何设计规避”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明进程无机会 flush/关闭事务的风险与优雅停机设计要点。
围绕“在容器入口脚本中如何保证把收到的 SIGTERM 正确转发给实际业务进程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 exec 替换进程或 trap+wait 的两种正确写法及常见错误。
围绕“docker stop 向容器发送什么信号,默认等待多久后才 SIGKILL”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明先 SIGTERM、超时后 SIGKILL 及 --time/-t 调整。
围绕“如何实时查看 Docker 容器的 CPU、内存、网络与块设备使用量,数据来自哪里”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 docker stats 输出的各列含义及数据源自 cgroup 统计。
围绕“为什么容器化应用应该把日志写到 stdout/stderr 而不是写容器内文件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明日志驱动以标准输出为采集入口及写文件丢失轮转与采集能力的问题。
围绕“Docker 的 tmpfs 挂载适合存放什么数据,与 volume 的关键区别是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 tmpfs 存内存不落盘、随容器停止消失的特性及敏感数据场景。
围绕“Docker 容器的 ulimit(如 nofile)如何设置,默认值从哪里来”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 --ulimit、daemon 默认 ulimit 与宿主机继承关系。
围绕“Docker 的 user namespace remapping 如何解决容器内 root 的安全风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明容器内 root 映射到宿主机非特权用户的机制及启用方式。
围绕“为什么容器删除后 volume 中的数据仍然存在,什么操作会真正删除 volume”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 volume 独立于容器生命周期及 docker rm -v / volume prune 的删除条件。
围绕“如何让 Docker volume 存储到 NFS 等远端共享存储,实现跨主机数据访问”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明创建带 driver 选项的 volume 的用法与适用边界。
围绕“为什么挂载宿主机目录进 Docker 容器后经常出现权限拒绝,如何正确处理 UID 映射”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明容器进程 UID 与宿主机文件属主的对应关系及 chown/指定 --user 等解法。
围绕“Docker 的 volume 与 bind mount 在数据归属、初始化与可移植性上有什么区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须从生命周期管理、镜像内容初始化、路径依赖三点对比。
围绕“为什么写入容器可写层的数据性能差且随容器消失,而挂载卷能避免这两点”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明存储驱动 copy-on-write 的开销与卷直接挂载绕过存储驱动的差异。