Docker container in Proxmox CT

Tobias Sänger

New Member
Aug 23, 2016
1
0
1
43
Hallo zusammen,

ich habe eine CT mit debian Jessie erstellt und würde dort gerne einen Docker collaboraonline installieren.

Ich scheitere aber schon beim Dockerdownload, denn ich bekomme folgende Meldung:

Code:
root@docer:~# docker pull collabora/code
Using default tag: latest
latest: Pulling from collabora/code
512b11b31aa9: Extracting 358.9 MB/358.9 MB
a3ed95caeb02: Download complete
failed to register layer: ApplyLayer exit status 1 stdout:  stderr: permission denied
Hat jmd. eine idee wie ich das lösen kann?

Vielen Dank.

gruß
Tobias
 
die empfehlung ist, docker in qemu/KVM laufen zu lassen, nicht innerhalt von LXC
 
Ok, dann wird docker aber auf dem Proxmox-Host installiert -- ich dachte, dass dieser Weg erst recht nicht empfohlen wird??

---> https://pve.proxmox.com/pve-docs/chapter-pve-faq.html (unter 11.)
Ich habs nicht probiert, aber was soll dagegen sprechen. Es ist lediglich immer um die Implentierung von Docker seitens Proxmox selbst gegangen und den Support hierfür. Was mit dem System anstellst ist ja jeden selber überlassen. Ich hatte noch keine Notwendigkeit für Docker. Steht aber auf der Todoliste... mal anszusehen. Und das werd ich dann sicher so machen wie im Video.

Wenn man seinen Host gut dokumentiert, sollte meines achtens alles kein Problem sein ;)
 
Ok, "offizielle Meinung" hier im Forum scheint ja weiterhin zu sein, dass man "doppelt virtualisiieren" sollte -- also docker innerhalb von KVM. Ich halte das ja eigentlich auch für den schlechteren Weg. Und wenn es tatsächlich reibungslos auf dem Host selbst läuft, spricht eigentlich nichts (?) weiter dagegen, oder??
 
Ob du nun Docker in LXC oder Docker in KVM oder Docker in Docker machst ... du hast immer zwei Virtualisierungsschichten, je nachdem aber eine andere Technologie zum virtualisieren.

Ich verwende auf schwachen Single-Host-Systemen auch Docker auf dem PVE-Host selbst, sonst immer nur im KVM und im Cluster natürlich auch in mehreren KVMs, sodass man dort architekturspezifisch schön PaaS (Docker-Swarm) auf IaaS (Proxmox VE) machen kann.

Immer eine Frage für was du Docker genau brauchst und was du damit anstellen willst. Ich habe im Clusterbetrieb sogar ein Fall, in dem ein KVM-Host läuft und darin eine Docker-Compose-Anwendung (PostgreSQL, Mongo, Applikationssserver und Load-Balancer) alleine, sodass ich sie schön von allem anderen gekaspelt habe.

Du musst dir halt im klaren sein, dass du dir bei der Verwendung von Docker potentiell den Host unsicher machst. Davor warnen alle Docker-Anleitungen (hoffentlich), wenn du kannst als normaler Benutzer über Docker SUID-Anwendung erzeugen, die du dann als Benutzer ausführen kannst und direkt root bist. Daher solltest du eigentlich Docker selbst immer kapseln.
 
Du musst dir halt im klaren sein, dass du dir bei der Verwendung von Docker potentiell den Host unsicher machst. Davor warnen alle Docker-Anleitungen (hoffentlich), wenn du kannst als normaler Benutzer über Docker SUID-Anwendung erzeugen, die du dann als Benutzer ausführen kannst und direkt root bist. Daher solltest du eigentlich Docker selbst immer kapseln.
Ok, das klingt jetzt spannend. Hab mich mit dem Thema auch noch nie beschäftigt. Alle sagen immer wie toll und super Docker ist... die Features sind sicher sehr gut. Sicherheitstechnisch sollte man wohl gut aufpassen und wissen was man tut.
 
Ok, das klingt jetzt spannend. Hab mich mit dem Thema auch noch nie beschäftigt. Alle sagen immer wie toll und super Docker ist... die Features sind sicher sehr gut. Sicherheitstechnisch sollte man wohl gut aufpassen und wissen was man tut.

Ja, hatte das mal selbst ausprobiert und dann genauer bei Docker (IRC) nachgefragt und die meinten, das wäre zum einen Normal und daher sollte man das auch nicht unbedingt auf einem Mehrbenutzersystem verwenden und auch immer nur abgeschottet.

Docker an sich ist echt eine prima Sache, man benötigt aber "die richtigen Probleme" um diese mit Docker lösen zu können. Für einfache Dinge wie Turnkey-Appliances zu ersetzen taugt es auf jeden Fall, denn einfacher als bei Docker geht es nicht. Oft reicht ein Befehl um etwas wie z.B. eine Datenbank oder auch eine komplexe Architektur via Docker-Compose zu starten. Die Überführung in die Produktivität ist dann aber eine andere Geschichte.

Als Test- und CI-Umgebung ist Docker aber das Beste was ich bisher gesehen habe. Früher hatte ich immer alles mit VMs gemacht und der Overhead war echt extrem.

Hab mir überlegt auf der diesjähren Proxtalks dazu mal ein Vortrag zu halten, vielleicht ist das dann Druck genug um den docker-compose-Treiber für PVE mal zu programmieren, den ich seit einem Jahr vor habe.
 
Hab mir überlegt auf der diesjähren Proxtalks dazu mal ein Vortrag zu halten, vielleicht ist das dann Druck genug um den docker-compose-Treiber für PVE mal zu programmieren, den ich seit einem Jahr vor habe.
Manno, ja zu Proxtalks wollte ich auch mal hin, hatte letztes Jahr terminlich auch überhaupt nicht reingepasst... ;( vielleicht passt es ja das nächste mal :) :)
 
Du musst dir halt im klaren sein, dass du dir bei der Verwendung von Docker potentiell den Host unsicher machst. Davor warnen alle Docker-Anleitungen (hoffentlich), wenn du kannst als normaler Benutzer über Docker SUID-Anwendung erzeugen, die du dann als Benutzer ausführen kannst und direkt root bist. Daher solltest du eigentlich Docker selbst immer kapseln.
Also ist das der eigentliche Grund, warum man docker am besten doppelt virtualisiert und einen eigenen docker-host dafür aufzieht, ja?
 
Warum doppelt? Einfach Docker in KVM - also so wie es unter Windows (Hyper-V) und MacOS (Bhyve) auch gemacht wird. Wenn man es strikt betrachtet virtualisiert Docker nichts, sondern sperrt nur via cgroups bestimmte Zugriffe direkt auf den Host, so wie es LXC auch macht.

Es gibt auch noch andere Wege ein System sicher zu bekommen, kommt malt darauf an was man damit machen will und wer Zugriff hat. Um meinen beschriebenen "Angriff" zu beseitigen bekommen alle Nutzer einfach ein Filesystem bei dem man keine suid-binaries anlegen darf und schon hat man es gelöst. Auch kann man Docker leicht innerhalb von Docker nochmal laufen lassen (DinD), was man mit dem großartigen Projekt Docker-on-Docker sich anschauen und selbst betreiben kann.

Der Hauptgrund von Docker in VM ist eigentlich genau PaaS auf IaaS, was somit unglaublich gut horizontal skaliert. Distributionen wie Boot2Docker, die ein komplettes System auf Knopfdruck bootstrapen spielen da natürlich auch mit und die Docker-Maschine-Infrastruktur erledigt das alles direkt über die API der IaaS Cloud in einem einzigen Befehl.
 
Sind der Sicherheitsaspekt oder 'politische' Interessen der Hauptgrund, warum ProxMox Docker-Container nicht 'nativ' unterstützt, oder liegt es eher an den verfügbaren Entwickler-Ressourcen? Mit anderen Worten, würde ProxMox eine Docker-Unterstützung einbinden, wenn die extern beigesteuert würde?
 
Mit anderen Worten, würde ProxMox eine Docker-Unterstützung einbinden, wenn die extern beigesteuert würde?

Nochmal: Docker ist PaaS und Proxmox VE ist IaaS. Es macht keinen Sinn das zusammen betreiben zu wollen, wenn man das hochverfügbar machen will. Wenn man einen Docker-Cluster produktiv betreiben will, dann will man eine Docker-interne Lösungen, denn die wurden ja genau für Docker und vor allem auch von Docker Inc. entwickelt.

Wenn du gerne die Docker-Infrastruktur, die in Go geschrieben ist gerne in Perl neu schreiben willst, dass diese in PVE eingebaut, nur zu.

Der Aufwand z.B. einen Docker Swarm auf physikalischen Maschinen zu betreiben ist ein gutes Stück komplexer als das Betreiben auf einer IaaS, da es dafür bereits sehr viele Plugins und Automatismen gibt, die dir auf Knopfdruck einen kompletten Schwarm bauen, der dann noch in der Lage die Maschinen automatisch zu verteilen. Besser geht es eigentlich nicht und das ist genau das was man als Platformbetreiber will ... Automatismus überall.

Aber wenn du direkt Docker im LXC betreiben willst, kannst du das auch jetzt schon tun - mit den erwähnten Sicherheitsproblemen und dass dir jeder - u.A. auch die Entwickler von Docker und Proxmox - davon abraten. Ich selbst hab eine Testinstanz so laufen, die aber eben für Tests verwendet wird und nicht produktiv eingesetzt wird.
 
  • Like
Reactions: toerag

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!