Linux Bibel online

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Österreich Lizenz.

Change language by Google translator: ...

Virtuelle Maschinen um etwa andere Systeme wie etwa Microsoft Windows oder andere Linux-Systeme unter dem laufenden Linux zu starten und zu nutzen wie etwa VirtualBox, Qemu, VMWare, Xen, KVM oder Paralells haben haben alle ein und das selbe Nachteil - starke Hardware ist nötig um beide oder gleich mehrere Systeme zur selben Zeit laufen zu lassen und vernünftig nutzen zu können. Hier springt die Software Docker ein, anders als die bisher genannten Anwendungen laufen mit Docker andere Betriebssysteme selbst auf alter, schwacher Hardware. Dazu noch mehrere auf einem mal - kein Problem. Denn die emulierten Systeme nutzen den Linux-Kernel des Host-Systems.
Der Nachteil von Docker - wie wir schon gelesen haben nutzen die Systeme den Kernel des installierten Systems, in diesem Fall also Linux, ein Microsoft-System ließe sich also nicht emulieren - nur Linux-Systeme laufen unter einem Docker unter Linux, dies jedoch perfekt. So ist es also die perfekte Software um andere Linux-Systeme zu probieren oder Software zu nutzen die auf dem eigenen Linux-System nicht vorhanden ist.

Docker installieren

Unter auf Debian basierenden Linux-Distributionen installieren Sie die Anwendung ganz einfach über die Paket-Verwaltung durch das Paket "docker.io". Standardmäßig kann nur der Nutzer "root" Docker nutzen - also der Administrator, damit auch normale Nutzer ohne Administrator-Rechte das System nutzen können muss man sie der Gruppe "docker" hinzu fügen. Am einfachsten natürlich gleich auf dem Terminal als Nutzer "root" durch den Befehl:

adduser username docker

Wobei man "username" natürlich durch den entsprechenden Namen des Nutzers ersetzt. Nach einer Ab- und wieder Anmeldung ist Docker für die angegebenen Nutzer einsatzbereit. Wichtig - haben Sie das System seit der Installation noch nicht neu gestartet gilt es die Software zu starten, auf dem Terminal als Nutzer "root":

systemctl start docker

Images vorbereiten

Als erstes gilt es sich ein oder mehrere passende Images zu suchen und diese herunter zu laden, beides kann Docker für Sie übernehmen. Das Suchen ist jedoch natürlich über die Homepage von Docker Hub einfacher. Sie müssen sich auf der Homepage nicht einloggen - jedoch haben Sie dann auch die Möglichkeit selbst Docker-Images für andere User bereit zu stellen, ein Klick auf "Explore" bringt Sie zu den vorhandenen Images. Sie finden dort Images von reinen Distributionen ohne zusätzliche Software wie auch solche mit vor bereiteten Funktionen wie etwa Webserver oder auch gleich mit OwnCloud und ähnlichem, es zahlt sich aus die Liste einmal genauer anzusehen.

Nun wollen wir gleich einmal zu Beginn eine passende Distribution über Docker selbst suchen, ich nehme jetzt als Beispiel einmal "Debian" - jedoch läuft auf einem Debian-Host-System natürlich auch ein Ubuntu, Gentoo oder Open SuSE - welches auch immer.

docker search debian

Docker - Linux-Distributionen unter Linux emulieren - Systeme suchen

Docker - Linux-Distributionen unter Linux emulieren - Systeme suchen

In diesem Fall zeigt die Ausgabe alle Treffer mit dem Namen "Debian" an. Man muss natürlich zur Suche keine Distributionen angeben, als Beispiel sucht man nach einer Anwendung die enthalten sein soll - etwa der Webserver "Apache":

docker search apache

Und die Ausgabe zeigt alle möglichen Treffer mit "Apache":

Docker - Linux-Distributionen unter Linux emulieren - Appliances suchen

Docker - Linux-Distributionen unter Linux emulieren - Appliances suchen

Hat man nun das passende Image gefunden merkt man sich die Bezeichnung - also die Bezeichnung unter NAME - mit dieser Bezeichnung lädt man sich nun das gewünschte Image herunter, in meinem Beispiel ganz einfach "debian":

docker pull debian

Docker lädt das Image herunter und zeigt den Fortschritt mit einem Balken an - wie man sieht sind die Images alles andere als groß, im Fall von einem reinen Debian etwas über 50MB, dies kommt aber natürlich auch darauf an welches Image man sich herunter zieht und welche Anwendungen dieses schon vor installiert hat.

Emulation starten

Hat man sich sein gewünschtes Image herunter geladen möchte man dieses natürlich auch einmal probieren, wir starten also unser erstes Docker-Image - in meinem Fall ganz einfach "debian". Die Syntax zum Start sieht nun so aus:

docker run optionen image befehl

"docker" ist uns natürlich bekannt, "optionen" ersetzt man durch benötigte, als "image" nutzt man die Bezeichnung des geladenen Images, "befehl" ist nur nur nötig wenn man gleich zu Beginn etwas starten möchte, dies lassen wir aber zu Beginn. Wir wollen ganz einfach unser geladenes Image nur einmal probieren:

docker run -t -i --rm debian

Dies bedeutet nichts anderes als "-t" - ein virtuelles Terminal wird emuliert, "-i" sorgt dafür das der Container interaktiv läuft und "--rm" sorgt dafür das Änderungen die man im System vor nimmt nicht dauerhaft bleiben, falls wir etwas versauen haben wir so nämlich immer ein frisches Image aus dem wir ein neues zaubern können. Das Image - also das System läuft sofort denn es nutzt ja gleich den Kernel des bereits laufenden Systems:

Docker - Linux-Distributionen unter Linux emulieren - gestartetes Image im Terminal

Docker - Linux-Distributionen unter Linux emulieren - gestartetes Image im Terminal

Man findet sich also sofort im System wieder und darin auf dem Terminal arbeiten wie auf dem realen System. Man kann es also etwa aktualisieren und weitere Software installieren, im Beispiel gleich einmal den Datei-Manager MC für das Terminal:

apt-get update apt-get install mc mc

Docker - Linux-Distributionen unter Linux emulieren - erste installierte Anwendung

Docker - Linux-Distributionen unter Linux emulieren - erste installierte Anwendung

Mittels des Befehls:

exit

würde man das System wieder verlassen und im Terminal des real installierten Systems landen - und die Änderungen verloren gehen.

Image für dauerhafte Änderungen speichern

Würde man sich nun wieder in das Image einloggen wären alle zuvor durchgeführten Änderungen verloren gegangen sein, dies hat natürlich auch Sinn, so lässt es sich basteln und probieren wie man möchte, startet man es neu erhält man wieder das frische System. Ein weiterer Sinn ist es jedoch aus einem solchen Image etwas zu machen, etwa einfach nur zum probieren oder einen Webserver damit erstellen oder was auch immer, hier setzt nur die Phantasie Grenzen. Man nutzt also das Image um daraus ein weiteres zu erstellen, oder natürlich auch mehrere. Man installiert also beispielsweise im laufenden Docker-Image eine Software oder was man auch immer benötigt und lässt dieses auch weiter laufen. Was wir benötigen ist nämlich die "Container ID", diese erhalten wir indem wir ein weiteres Terminal öffnen und den Befehl:

docker ps

starten:

Docker - Linux-Distributionen unter Linux emulieren - Welche Images laufen?

Docker - Linux-Distributionen unter Linux emulieren - Welche Images laufen?

Gleich als ersten Eintrag erhalten wir die ID die wir benötigen, diese führt uns zum Ziel. Nun, nehmen wir an ich möchte dieses laufende Image speichern unter dem Namen "debian-robert":

docker commit ID-Nummer debian-robert

Schon wird das Image unter dem angegebenen Namen gespeichert. Man kann den laufenden Container stoppen und neu starten, die zuvor installierte Software ist noch immer vorhanden.

Images verwalten

Wir wissen nun schon wie wir Images für Docker herunter laden, diese starten und ihren Zustand speichern können. Wenn man viel herum probiert kommen mit der Zeit natürlich so einige Images zusammen und man weiß gar nicht mehr wie viele auf dem System liegen - dies zeigt uns der Befehl:

docker images

Docker - Linux-Distributionen unter Linux emulieren - Installierte Images

Docker - Linux-Distributionen unter Linux emulieren - Installierte Images

Nun benötigen wir eines nicht mehr, etwa in meinem Beispiel "debian":

docker rmi debian

Des weiteren kann man Docker-Images natürlich nicht nur zum probieren und basteln nutzen sondern natürlich auch etwa als Webserver, Mail-Server, als Datenbank und dergleichen, so hilft es uns natürlich wenig wenn wir uns selbst immer eingeloggt haben müssen - wir starten in diesem Fall ganz einfach das Image mit der Option "-d" - etwa:

docker run -d debian

Services aus dem Image nutzen

Nehmen wir einmal an wir haben uns ein Docker-Image geladen, dieses als Webserver konfiguriert und alles nötige angepasst, wie kommen wir nun an die Webseite - richtig, wir müssen den nötigen Port über unser Host-System leiten, als Beispiel nehme ich wie schon beschrieben den Webserver, dieser nutzt unter normalen Umständen den Port "80" um Webseiten auszuliefern, und ich möchte das dieser Port nun auf den Host - also das real installierte System weiter geleitet wird - natürlich ebenfalls auf den Port "80", man startet den Container einfach mit folgenden Optionen:

docker run -d -p 80:80 debian

Wobei der erste der des Hosts ist und der zweite der des virtuellen Systems.

Mehr

Noch mehr über Docker finden Sie unter Docker Docs.

Grafische Software über Docker nutzen

Suche Nach oben Startseite Mail an den Autor Links rund um Linux

SiteLock