如何在 lxc 容器内运行 docker?

如何在 lxc 容器内运行 docker?

我在 Arch 主机上创建了非特权 lxc 容器,如下所示:

lxc-create -n test_arch11 -t download -- --dist archlinux --release current --arch amd64

而且它不运行 docker。我在容器内做了什么:

  1. 从 Arch 仓库安装了 dockerpacman -S docker
  2. 尝试运行一个 hello-world 容器docker run hello-world
  3. 得到下一个错误:

docker:来自守护进程的错误响应:OCI 运行时创建失败:container_linux.go:346: 启动容器进程导致“process_linux.go:297: 为进程应用 cgroup 配置导致 \”mkdir /sys/fs/cgroup/cpuset/docker: 权限拒绝\"":未知。

ERRO[0037] 等待容器时出错:上下文已取消

有什么问题以及如何让 docker 在容器内工作?

答案1

因为lxcdocker使用相同类型的隔离(也称为内核命名空间),所以您不能在无特权的lxc .

你的 lxc 容器必须有特权。

但是你可以在常规虚拟机( kvm , virtualbox ,...)中运行 docker

答案2

通过向 grub 配置添加一个标志来修复我的问题。这是来源:https://fedoraproject.org/wiki/Changes/CGroupsV2#Upgrade.2Fcompatibility_impact

按着这些次序:

1-编辑/etc/default/grub

2- 在 GRUB_CMDLINE_LINUX 行中添加以下标志:systemd.unified_cgroup_hierarchy=0

3-然后:grub2-mkconfig

4-重新启动你的电脑

相关内容