Zum Hauptinhalt springen

Du bist hier
< Zurück

Container ausführen / laden

docker run <containername>
Dieses Kommando sieht zuerst nach ob das Image <containername> bereits auf dem lokalen Rechner installiert ist. Ist das nicht der Fall, wird es vom Docker Hub heruntergeladen und lokal gespeichert. Dicker bildet daraus einen Container und führt diesen schließlich aus

docker run hello-world

Ab dem zweiten mal wird „hello-world“ blitzschnell ausgeführt, weil jetzt ein lokaler Container der Hello-World-App zur Verfügung steht.

Statusinformationen abrufen

Docker ps -a [ | grep ubuntu ] liefert eine Liste aller laufenden bzw. in der Vergangenheit ausgeführten Docker Container.

Die merkwürdegen Namen. in der Spalte „Names“ resultieren daraus, dass Docker jedem Container automatisch einen leicht zu merkenden, aber dennoch eindeutigen Namen gibt

docker ps -a (gesamte Liste aller Container)
docker ps -a | grep ubuntu (Liste aller Container die Ubuntu heißen)

docker images (listet eine Liste aller Images auf)

Base Images laden / ausführen

Als Beispiel dient hier der „Ubuntu“ Container
mit diesem Befehl bekommt man die Version, die Docker mit dem Attribut „latest“ ausgestattet hat. In der Regel ist das die gerade aktuelle LTS Version.
Wenn man eine bestimme Version haben möchte, muss man diese deklarieren

docker run -it ubuntu:18.10

Die Option -it beschreibt das run-Kommando näher: -i bedeutet, dass der Container interaktiv ausgeführt und mit der Standardeingabe verbunden werden soll. Wegen -t verwendet Docker einen Pseudo-Termninalemulator und verbindet diesen mit der Standardeingabe. Die Kombination dieser beiden Optionen ist erforderlich, wenn ein Container in einem Terminal-

Folgender Befehl zeigt wie der gerade aktuelle Ubuntu-LTS-Image heruntergeladen, ein darauf aufbauender Container erzeugt und schließlich ausgeführt wird. Man landet dann automatisch in der Ubuntu üblichen Shell „bash“ in der man nun Kommandos mit root-Rechten ausführen kann.

docker run -it ubuntu

--exit beendet die Ausführung des Containers

exit

Docker image Namen

Docker Image Namen bestehen aus drei Teilen:
Quelle/imagenmae:tag

Quelle ist der Name der Person oder Organisation die –das Image zusammengestellt hat
imagename gibt erwartungegemäß den Namen des Images an.

Sofern das Image mehrere Versionen hat, wählt die optionale Angabe von tag explizit das mit diesem Tag gekennzeichnete Image aus.

Eigene Docker Namen

Natürlich ist es auch möglich den Docker Containern eigene Namen statt den automatisch generierten zu vergeben.

Dazu muss man wenn man einen Container erzeugt einen zusätzlichen Parameter mitgeben –> „–name“

docker run -it --name myubuntu -h myubuntu ubuntu

–name vergibt einen eigenen Containernamen

–h vergibt auch zugleich den Hostnamen für den Container

Neue Versionen laden

Wenn man nach einigen Tagen/Wochen/Monaten „docker run -it ubuntu“ ausführt, kommt weiterhin das beim ersten Versuch heruntergeladene Ubuntu Image zum Einsatz – selbst dann, wenn es längst eine neue Version gibt.

Den Download einer aktuelleren Version muss bei Bedarf selbst angestoßen werden (Vorsicht beim Dateisystem, folgt noch in der Wiki)

docker image pull ubuntu (holt die aktuellste Version von Ubuntu)

Netzwerk in Containern

Docker weist den Containern beim Start eine eindeutige IP Adresse in dem Netzwerk zu. Anders als bei virtuellen Maschinen kommt dabei allerdings kein DHCP zum Einsatz

<im container auszuführen>
hostname -I
z.b: 172.17.0.2

Container starten -> nicht erneut laden

Um einen Container erneut zu starten gibt es ein eigenes Kommando, wenn man nämlich „docker run -it ubuntu eingibt wird ein neuer Container mit einem neuen zufälligen Namen generiert.

Möchte man jedoch einen bereits bestehenden Container erneut starten, benötigt man:

docker start -i <container_name>

Damit der Container interaktiv verwendet werden kann, muss die Option -i angegeben werden. -t ist hingegen nicht zulässig. Die meisten Optionen, die beim Erzeugen eines Containers mit docker run angegeben werden, werden dauerhaft im Container gespeichert. -i zählt zu den Ausnahmen.

Parallel weitere Prozesse mit docker exec ausführen

Häufig wird in einem Docker Container nur ein Prozess ausgeführt- sei es eine interaktive Shell im Vordergrund, oder ein Server Dienst im Hintergrund.

„docker exec“ bietet die Möglichkeit, parallel zu einem laufenden Container beliebige weitere Prozesse zu starten.

docker exec ist primär zum Debugging gedacht, kann aber universell eingesetzt werden.

1. In einem Terminal einen Container starten (myubuntu)
docker start -i myubuntu
2. In einem neuem Terminal den selben Container nochmal aufrufen
docker exec -it myubuntu /usr/bin/top   

Der oben angeführte exec Befehl führt den Container „myubuntu“ parallel zu der ersten Terminal Sitzung auf. Und startet sofort den „top“ Befehl.