CentOS作为Docker主机会导致与任何其他主机操作系统不同的容器行为
我在不同的主机上与Docker合作:RHEL7、SELS12和CentOS7, 我发现在CentOS7上作为Docker主机运行的容器与在SLES12或RHEL7上作为Docker主机运行的容器有不同的行为 不同的行为与Docker容器中的常见问题有关:CentOS作为Docker主机会导致与任何其他主机操作系统不同的容器行为,docker,centos,containers,linux-capabilities,Docker,Centos,Containers,Linux Capabilities,我在不同的主机上与Docker合作:RHEL7、SELS12和CentOS7, 我发现在CentOS7上作为Docker主机运行的容器与在SLES12或RHEL7上作为Docker主机运行的容器有不同的行为 不同的行为与Docker容器中的常见问题有关: 在CentOS7作为Docker主机的容器中: 我有权解析路径中的符号:/proc/1 命令:ls-la/proc/1 容器的启动命令: docker run -it --name=nessi_centos_test centos:late
在CentOS7作为Docker主机的容器中: 我有权解析路径中的符号:/proc/1
命令:
ls-la/proc/1
容器的启动命令:docker run -it --name=nessi_centos_test centos:latest bash
但在SLES12或RHEL7作为Docker主机的容器中:
我使用相同的命令获得被拒绝的权限,您可以在上面的链接中看到。命令:
ls-la/proc/1
其他信息:
默认情况下,依赖于容器的Linux内核功能受限
其中一个功能是:CAP\u SYS\u PTARCE默认情况下,此功能存在于任何Linux主机中:
Linux机器中的示例:
但在所有容器中,默认情况下都会丢失它(除非您使用--cap add=sys\u ptrace启动容器)
容器中的示例: 您可以在这里看到,容器具有一组受限的功能,其中不包括sys_ptrace功能。
因此,如果我在RHEL或SLES中以--cap add=sys_ptrace作为Docker主机启动容器,我将获得与CentOS 7中作为Docker主机相同的行为。
例子: Docker主机:RHEL7
Docker图像:centos:最新(与以前相同)
Strat命令:docker run-it--name=nessi\u centos\u test5--cap add=sys\u ptrace centos:latest bash
正如您在这里看到的,为了获得与CentOS 7相同的行为,我需要使用额外的sys_ptrace功能启动容器。
技术资料:
ls-la/proc/1
结果:无错误
ls-la/proc/1
结果:
ls:无法读取符号链接/proc/1/cwd:权限被拒绝
ls:无法读取符号链接/proc/1/root:权限被拒绝
ls:无法读取符号链接/proc/1/exe:权限被拒绝
Linux localhost.localdomain 3.10.0-327.22.2.el7.x86_64#1 SMP周四6月23日17:05:11 UTC 2016 x86_64 x86_64 GNU/Linux
[root@localhost桌面]#码头工人信息
集装箱:1个
正在运行:0
暂停:0
停止:1
图片:1
服务器版本:1.11.2
存储驱动程序:devicemapper
池名:docker-253:0-136686025-Pool
池块大小:65.54 kB
基本设备大小:10.74 GB
备份文件系统:xfs
数据文件:/dev/loop0
元数据文件:/dev/loop1
使用的数据空间:324.3 MB
数据空间总量:107.4 GB
可用数据空间:35.43 GB
使用的元数据空间:847.9KB
元数据空间总量:2.147 GB
可用元数据空间:2.147 GB
支持Udev同步:正确
已启用延迟删除:false
已启用延迟删除:false
延迟删除的设备计数:0
数据循环文件:/var/lib/docker/deviceapper/deviceapper/Data
警告:强烈反对在生产中使用环回设备
使用
--storage opt dm.thinpooldev
或使用--storage opt
dm.no\u warn\u on\u loop\u devices=true
来抑制此警告。元数据循环文件:/var/lib/docker/devicemapper/devicemapper/Metadata
库版本:1.02.107-RHEL7(2016-06-09)
日志驱动程序:json文件
Cgroup驱动程序:cgroupfs
插件:
音量:本地
网络:空主机网桥
内核版本:3.10.0-327.22.2.el7.x86_64
操作系统:CentOS Linux 7(核心)
OSType:linux
体系结构:x86_64
CPU:1
总内存:993.3 MiB
名称:localhost.localdomain
ID:BPVJ:YDPR:4VUO:WNBN:DVZH:7MEH:TPMP:Y3MP:GMN7:UT36:LQ74:GJ4N
Docker根目录:/var/lib/Docker
调试模式(客户端):false
调试模式(服务器):false
注册表:
警告:网桥nf呼叫iptables已禁用
警告:桥接-nf-call-ip6tables已禁用
码头工人图片:
centos:最新版本
ubuntu:14.04
还测试了:
Docker守护程序版本:1.10.2
RHEL7作为Docker主机:
[root@localhost~]#取消-a
Linux localhost.localdomain 3.10.0-123.el7.x86_64#1 SMP周一5月5日11:16:57美国东部夏令时2014年x86_64 x86_64 x86_64 GNU/Linux
[root@localhost~]#码头工人信息
集装箱:14个
跑步:6
暂停:0
停止:8
图片:22
服务器版本:1.11.2
存储驱动程序:devicemapper
池名:docker-253:0-67168288-Pool
池块大小:65.54 kB
基本设备大小:10.74 GB
备份文件系统:xfs
数据文件:/dev/loop0
元数据文件:/dev/loop1
使用的数据空间:9.66 GB
数据空间总量:107.4 GB
可用数据空间:16.27 GB
使用的元数据空间:7.68 MB
元数据空间总量:2.147 GB
可用元数据空间:2.14 GB
支持Udev同步:正确
已启用延迟删除:false
已启用延迟删除:false
延迟删除的设备计数:0
数据循环文件:/var/lib/docker/deviceapper/deviceapper/Data
警告:强烈反对在生产中使用环回设备
使用
--storage opt dm.thinpooldev
或使用--storage opt dm.no\u warn\u on\u loop\u devices=true
来抑制此警告。元数据循环文件: