如何在centos 7 lxc内运行docker?

时间:2018-05-10 10:27:27

标签: docker centos lxc cgroups lxd

我使用security.privilegedsecurity.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上工作。

2 个答案:

答案 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