I have searched quite a lot about this but I’m not satisfied with the results as per most were old posts. My LXD is running on a ZFS pool and I would like to run docker on a container. Initially I had no problems to setup docker I simply ran:
lxc launch images:debian/10 v1 -c security.privileged=true -c security.nesting=true
lxc exec v1 bash
curl -fsSL get.docker.com | sh
The docker storage drive is set to vfs and I would like to change this to overlay. I am passing the linux kernel to the container :
lxc config set v1 linux.kernel_modules overlay
and inside the container I updated /etc/docker/daemon.json
:
{
"storage-driver": "overlay2"
}
When I start the docker service again, the service does not start.
Log from journalctl -f
Jul 13 20:15:42 v1 systemd[1]: Starting Docker Application Container Engine...
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.283024071Z" level=info msg="Starting up"
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.288495013Z" level=info msg="parsed scheme: \"unix\"" module=grpc
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.288670863Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.288746584Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>}" module=grpc
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.288815305Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.294450060Z" level=info msg="parsed scheme: \"unix\"" module=grpc
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.294814092Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.294933997Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/containerd.sock <nil> 0 <nil>}] <nil> <nil>}" module=grpc
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.294980552Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Jul 13 20:15:42 v1 dockerd[696]: time="2021-07-13T18:15:42.310135470Z" level=error msg="failed to mount overlay: invalid argument" storage-driver=overlay2
Jul 13 20:15:42 v1 dockerd[696]: failed to start daemon: error initializing graphdriver: driver not supported
Jul 13 20:15:42 v1 systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Jul 13 20:15:42 v1 systemd[1]: docker.service: Failed with result 'exit-code'.
Jul 13 20:15:42 v1 systemd[1]: Failed to start Docker Application Container Engine.
Jul 13 20:15:44 v1 systemd[1]: docker.service: Service RestartSec=2s expired, scheduling restart.
Jul 13 20:15:44 v1 systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Jul 13 20:15:44 v1 systemd[1]: Stopped Docker Application Container Engine.
Jul 13 20:15:44 v1 systemd[1]: docker.service: Start request repeated too quickly.
Jul 13 20:15:44 v1 systemd[1]: docker.service: Failed with result 'exit-code'.
Jul 13 20:15:44 v1 systemd[1]: Failed to start Docker Application Container Engine.
Jul 13 20:15:44 v1 systemd[1]: docker.socket: Failed with result 'service-start-limit-hit'.
What can I do to run docker storage driver overlay2 on an lxd container?