Docker in einem LXC Container nutzen

Einen Container in einem Container … ich werde jetzt nichts mit ception sagen.

Aber nicht desto trotz gibt es die Prämisse das es nicht möglich möglich ist sowohl LXC/LXD als auch Docker auf dem selben Host zeitgleich zum laufen zu bekommen ohne das sich die Containertechnologien gegenseitig beeinträchtigen.
Das Problem ist das das Docker-Netzwerk das LXC-Netzwerk stört.

Da ich seit einer Ewigkeit auf meinem Homeserver LXD im Einsatz habe und auch eine Spielwiese zum experimentieren für Docker haben wollte und auch nicht die Ressourcen für eine Virtuelle-Maschine zu verbrauchen um auf dem selben Host Docker zu benutzen habe ich nach einer anderen Möglichkeit gesucht.

Und es ist total verrückt aber es ist möglich indem man innerhalb eines LXC-Containers dockert.
Natürlich geht das nicht sofort mit jedem LXD-Container, da sobald man in einem LXD-Container Docker installiert hat und einen Docker-Container starten will einen Fehlerbekommt weil der Docker-Prozess das aus Sicherheitsgründen in einem LXD-Container keine neuen Prozesse starten darf.

Die Lösung dafür ist das nesting für einen Container zu aktivieren.
Das geht indem man einen LXD-Container mit folgenen Parametern startet:

lxc launch ubuntu:18.04 docker-host -c security.nesting=true -c security.privileged=true

Damit ist es problemlos möglich innerhalb eines LXC-Containers Docker-Container zu benutzen.

root@docker-host:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ee15272875d9 linuxserver/heimdall "/init" 2 days ago Up 2 days 443/tcp, 0.0.0.0:8081->80/tcp heimdall
8abfde56ab1a lsiocommunity/organizr "/init" 2 days ago Up 2 days 443/tcp, 0.0.0.0:8080->80/tcp organizr
1e39b20edffd portainer/portainer "/portainer" 3 days ago Up 3 days 0.0.0.0:9000->9000/tcp gifted_stallman

Und damit ist es einfach möglich mit dieser Containerception(ach verdammt jetzt hab ich es doch gesagt) eine einfache und ressourcensparende Docker-Umgebung auf einem LXC-Host bereit zu stellen.