2017-05-02 3 views
1

Gibt es eine Möglichkeit, LXD in Docker auszuführen? z.B.Gibt es eine Möglichkeit, LXD in Docker auszuführen?

auf dem Rechner mit Ubuntu 16.04:

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

Im Behälter:

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 

LXD Daemon funktioniert, aber ich kann nicht LXD Behälter aufgrund von Fehlern mit cgroups starten.

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". 

ich auch versucht:

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

Zugegeben - ich habe keine Ahnung, also schreibe ich einen Kommentar. Ich frage mich nur, wie kommt es, dass du Docker benutzt, wenn du LXD benutzt? Sie sollten wahrscheinlich die Logik umkehren und Docker in LXC ausführen. – Mjh

+0

Ja, ich kann Docker ohne Probleme in LXD oder LXC ausführen. Es ist eine häufige Aufgabe. Aber stellen Sie sich vor, Sie haben ein Cluster aus ein paar Knoten mit leichten OS und Docker. Es ist einfach, Ihre Anwendung oder Ihr verteiltes Dateisystem (z. B. GlusterFS) über Docker auszuführen, selbst wenn Sie eine virtuelle KVM-Maschine als Docker-Container ausführen. Alles wird mit Docker Swarm funktionieren. Die Frage ist also: Gibt es eine Möglichkeit, LXD in Docker zu betreiben? Vielleicht ist es nicht nützlich, aber IMHO sollte es funktionieren. –

+0

Das scheint rückwärts zu sein. LXD ist eine vollständige Linux-Umgebung, Docker ist sehr eingeschränkt. Ich würde die Frage "Kann ich Docker innerhalb von LXD ausführen" erwarten, aber nicht "kann ich LXD innerhalb von Docker ausführen". Wenn ich diese Frage stelle, frage ich, was versuchst du zu tun? und warum?. – JamieB

Antwort

1

Nr

LXD/LXC eine Linux-Umgebung Full-Stack zur Verfügung stellen. Docker ist eine Engine, mit der Sie Anwendungen und Abhängigkeiten schließen können.

Docker bietet eine eingeschränkte Umgebung, die bestimmte Betriebssystemfunktionen in Bezug auf Netzwerk- und Speicherpersistenz absichtlich deaktiviert.

Sie können Docker in LXD/LXC-Containern ausführen (tatsächlich verwendete Docker LXC als zugrunde liegende Technologie - kann immer noch tun), aber Sie würden keine LXC-Container in einem Docker-Container ausführen.

Verwandte Themen