Is there a way to run LXD inside Docker?

Is there a way to run LXD inside Docker? eg.

On a host with ubuntu 16.04:

docker run --rm -it --net host --privileged ubuntu bash

      

In the container:

apt update && apt install -y lxd iproute2 btrfs-tools screen bash-completion curl wget apt-transport-https lxcfs lxd-tools lxd-client vim overlayroot libkmod2 libkmod-dev cgroup-tools cgroupfs-mount cgroup-bin

screen -S lxd
# in screen
lxd --debug --group lxd


lxd init
lxc list
lxc launch ubuntu:16.04 test

      

The LXD daemon is running, but I am unable to start the LXD container due to errors with groups.

error: Error calling 'lxd forkstart test /var/lib/lxd/containers /var/log/lxd/test/lxc.conf': err='exit status 1'
  lxc 20170502151757.409 ERROR lxc_apparmor - lsm/apparmor.c:apparmor_process_label_set:220 - If you really want to start this container, set
  lxc 20170502151757.409 ERROR lxc_apparmor - lsm/apparmor.c:apparmor_process_label_set:221 - lxc.aa_allow_incomplete = 1
  lxc 20170502151757.409 ERROR lxc_apparmor - lsm/apparmor.c:apparmor_process_label_set:222 - in your container configuration file
  lxc 20170502151757.409 ERROR lxc_sync - sync.c:__sync_wait:57 - An error occurred in another process (expected sequence number 5)
  lxc 20170502151757.409 ERROR lxc_start - start.c:__lxc_start:1346 - Failed to spawn container "test".
  lxc 20170502151757.954 ERROR lxc_conf - conf.c:run_buffer:405 - Script exited with status 1.
  lxc 20170502151757.954 ERROR lxc_start - start.c:lxc_fini:546 - Failed to run lxc.hook.post-stop for container "test".

      

I've also tried:

--cap-add=ALL
--volume /dev:/dev
--pid=host
--volume /sys/fs/cgroup:/sys/fs/cgroup

      

+1


source to share


1 answer


Not.

LXD / LXC provides a full screen Linux environment. Docker is a mechanism that allows you to wrap your application and dependencies.



Docker provides a limited environment that deliberately disables some of the OS's features related to maintaining networking and storage.

You can run Docker inside LXD / LXC containers (actually, Docker used to use LXC as the underlying technology can still do), but you won't run LXC containers inside a Docker container.

+2


source







All Articles