0
riwaha

Docker in LXD

Recommended Posts

On an Odroid C2 and Le Potato, both running Armbian 5.75, Docker fails to run hello-world when inside an LXD container, reproducible by running the following commands results in an error

Spoiler

apt-get update

apt-get install snapd

snap install lxd

lxd init # set storage pool to dir , not xfs or btrfs

lxc launch ubuntu:bionic docker

lxc config set docker security.nesting true

lxc config set docker linux.kernel_modules ip_tables, overlay

lxc restart docker

lxc exec ubuntu -- /bin/bash

# inside the container

apt-get update

apt-get install docker.io

systemctl enable docker

systemctl start docker

docker run --rm hello-world

 

/var/log/syslog shows

Spoiler

 

docker dockerd[148]: time="2019-03-16T12:37:02.592553328Z" level=error msg="error unmounting /var/lib/docker/overlay2/1ed547e71f4803d40b3b3b3a65c96bf8553bb9532b733be2a5c50b803cc1aea-init/merged: invalid argument" storage-driver=overlay2

docker dockerd[148]: time="2019-03-16T12:37:02.592553328Z" level=error msg="Handler for POST /v1.39/containers/create returned error: error creating overlay mount to /var/lib/docker/overlay2/1ed547e71f4803d40b3b3b3a65c96bf8553bb9532b733be2a5c50b803cc1aea-init/merged: operation not permitted

 

 

Running the same commands on Ubuntu 18.04 x86_64 runs the Docker container inside LXD without error. I have tried searching, I have found that it used to not be supported if the LXD storage pool was XFS, in this case LXD storage pool is dir which works on x86_64, but not Armbian, I am thinking it is kernel config, but have not found what would be missing.

Share this post


Link to post
Share on other sites

I am sorry, it's 5.75 stable Ubuntu 18.04.2 LTS 4.19.20-meson64, branch next. I won't be near it for a while, so I can't get the armbianmonitor -u unfortunately.

Share this post


Link to post
Share on other sites
On 3/16/2019 at 9:27 AM, Igor said:


Without armbianmonitor -u I have no idea which kernel you are using ... and kernel (config) is the most likely problem. Docker dependencies should be covered but snap and lxd ... never paid attention to that. Check meson64 default-next-dev kernel config(s) and sent a PR with changes - what needs to be enabled.

I got a chance to look into this further. It looks like a patch for the overlay module will be needed, I found a commit that enabled mounting in user namespaces for overlay fstype in ubuntu-xenial , it is still used in ubuntu-bionic. I just tested it on 4.19.y branch and it fixes the issue.

I have forked armbian/build, and have tested it in meson64-next, should I test it in -default and -dev as well, or should I send a PR with just meson64-next?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
0