我使用security.privileged
和security.nesting
工作Ubuntu就好了。但是对于centos7,docker守护程序在尝试拉动图像时失败。它甚至无法运行你好世界。有一个cgroup违规,某些文件夹不存在。无论如何,有没有成功的例子呢?我最终试图运行Kubernetes并为主人和工人使用lxc / lxd容器,但我需要它才能在centos中工作。
确切的错误消息:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "process_linux.go:279: applying cgroup configuration for process caused \"open /sys/fs/cgroup/systemd/lxc/docker-test/docker/cpuset.cpus: no such file or directory\"": unknown.
ERRO[0000] error waiting for container: context canceled
精确设置是一个centos7数字海洋水滴,安装了lxd,并由go构建。使用lxc我创建了一个centos7容器。在那个机器容器中,我正在尝试运行docker。我意识到这就像容器一样,但它绝对适用于ubuntu,所以我想它应该在centos上工作。
答案 0 :(得分:0)
我在Fedora-28(LXC)主机中运行CentOS-7.6
Linux / LXC容器(GUEST)时遇到了这个确切问题;尝试在该CentOS-7.6
LXC容器中使用Docker时。我做了一些研究,并从这些网络资源中拼凑出一个解决方案:
jdoe@HOST$ sudo echo "root:1000000:65536" | sudo tee -a /etc/subuid /etc/subgid
# The above is performed once on the LXC HOST! (the outermost server).
# ---------------------------------------------------------------------------------
# Next, add these entries to the config file of the Linux/LXC container giving
# you the exception, (noting that blank 'lxc.cap.drop =' is not a mistake).
# ---------------------------------------------------------------------------------
security.nesting = true
security.privileged = true
lxc.aa_profile = unconfined
lxc.cgroup.devices.allow = a
lxc.mount.auto=proc:rw sys:rw
lxc.cap.drop =
# ---------------------------------------------------------------------------------
这消除了一个与您非常相似的错误,并使一切正常。希望对您有所帮助。
答案 1 :(得分:0)
在我的CentOS-7(LXC)主机中的CentOS-7 LXC容器(GUEST)中,唯一需要的配置是:
lxc.cgroup.devices.allow = a
lxc.mount.auto=sys
lxc.cap.drop =
与NYCeyes帖子相比,以下内容不是必需的或未经修改的:
lxc.mount.auto=proc:rw sys:rw
(已删除proc,docker错误,仅引用了/sys
中的目录;使用sys
代替了sys:rw
,因为如果好奇的Google { {1}}
(已完全删除)"man lxc.mount.auto"
(已完全删除)security.nesting = true
(已完全删除)security.privileged = true
(aa_profile是指App Armor,CentOS-7使用SELinux而不是AA)
(未执行)lxc.aa_profile = unconfined