第 38 章 Linux 容器

docker 组件,BZ#1193609
如果 docker 要为 docker 精简池设置设定循环设备,则 docker 操作,比如 docker 删除及容器 I/O 操作会较缓慢。强烈建议采用备选配置设置 LVM 精简池,并将其作为 docker 存储后端。有关设置 LVM 精简池的说明,请查看 lvmthin(7) manual page。然后修改 /etc/sysconfig/docker-storage 文件,在其中包含以下行,以便容器存储可使用 LVM 精简池。
DOCKER_STORAGE_OPTIONS= --storage-opt dm.thinpooldev=<pool-device>
docker 组件,BZ#1190492
在一些应用程序容器已处于活跃状态后启动的拥有超级用户特权的容器(Super-Privileged Container,SPC)可访问这些应用程序容器树的文件系统。这些文件系统树位于设备映射器“thin target”设备中。因为 SPC 中有这些文件系统树的参考,docker 守护进程无法在终止应用程序容器时清除“thin target”(该设备仍处于“busy”状态)。结果是会在 systemd 日志中记录以下出错信息:
Cannot destroy container {Id}: Driver devicemapper failed to remove root filesystem {Id}: Device is Busy
其中 {Id} 是容器运行时 ID 的占位符,并在应用程序容器被终止后留下旧的设备映射器“thin target”。
docker 组件,BZ#1188252
拥有超级用户特权的容器(SPC)在运行时,有时可能会意外终止 docker 守护进程。结果是会在 /var/lib/docker/linkgraph.db 文件中留下与拥有超级用户特权的容器相关的陈旧条目,且之后无法正确重启该容器。
gdb 组件,BZ#1186918
如果在拥有超级用户特权的容器(SPC)中运行 GNU 调试器(GNU debugger,GDB),并将其附加到 Red Hat Enterprise Linux Atomic Host 的另一台容器中运行的进程时,GDB 无法找到主要可执行文件的二进制文件映像或者要调试的进程载入的共享库。结果是 GDB 可能会显示出错信息,表示某些文件不存在、或文件存在但映射错误、或者可能看似正确添加 GDB,但之后的命令会失败,或者显示损坏信息。临时解决方案是要在运行该命令前指定 sysroot 和文件,如下:
set sysroot /proc/PID/root					
file /proc/PID/exe			
attach PID

为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。