Bisher haben wir uns damit begnügt vorgefertigte Docker Images vom Docker Hub zu verwenden und aus diesen Container zu instantiieren. Das werden wir in dieser Lektion ändern. Wir werden uns unsere eigenen Images mit Hilfe von docker image build erzeugen.
1.) Wir starten mit einem sehr einfachen dockerfile in dem nur zwei Befehle zum Erstellen eines Images vorhanden sind.
Der erste Befehl gibt an auf welcher Basis unser neues Docker Image erstellt werden soll. In diesem Fall ist es einfach die neuste Ubuntu Version die verfügbar ist. Als nächstes führen wir im Ubuntu einfach einen echo Befehl aus der etwas in die Konsole schreibt. Die Datei muss dockerfile heißen.
2.) Um die Datei dockerfile zu verwenden müssen wir beim Befehl docker image build lediglich den Pfad angeben, an dem diese Datei liegt. In meinem Fall ist dies C:\temp. Der korrekte Befehl ist in diesem Falle also
docker image build C:\temp.
Nachdem der Befehl durchgelaufen ist wird die Id des neu erzeugten Docker Images angezeigt. In meinem Beispiel ist das 2a1a5abca6b2, bei Dir wird die Id aber definitiv eine andere sein, d.h. Du musst überall dort wo ich in den folgenden Schritten 2a1a5abca6b2 verwende Deine eigene Id verwenden.
3.) Nachdem das Docker Image erzeugt wurde können wir nun wie gehabt einen Docker Container erstellen. Dies geht über den Befehl
docker container run 2a1a5abca6b2.
Im Hintergrund wird ein Ubuntu Linux gestartet das den oben angegebenen Text in der Kommandozeile ausgibt.
4.) Mit dem Befehl
docker image ls
können wir uns die auf dem lokalen Rechner vorhandenen Docker Images anzeigen lassen. Wir sehen, dass auch unser neu erstelltes Docker Image dort auftaucht. Im Gegensatz zu anderen Images hat es aber bisher keinen griffigen Namen.
5.) Da es auf Dauer nicht so schön ist das Image über die Id zu referenzieren macht es sicherlich Sinn dem Image einen Namen zu verpassen. Dies kann man über den Befehl
docker image tag 2a1a5abca6b2 hellodocker
erledigen. Im Beispiel nennen wir unser Image hellodocker.
6.) Geben wir nun noch einmal den Befehl
docker image ls
ein, so wird der neue Name angezeigt.
7.) Natürlich kann man auch direkt beim Erstellen eines Images einen Namen vergeben. Hierzu dient der Befehl
docker image build C:\temp -t basichelloworld
Dieses Beispiel zeigt noch ein anderes sehr interessantes Verhalten von Docker. Da wir an der Datei dockerfile keine Änderungen vorgenommen haben werden die entsprechenden Images auch nicht noch einmal vom Docker Hub heruntergeladen sondern es wird das oben erstellte Image mit der Id 2a1a5abca6b2 weiter verwendet.
8.) Führen wir nun noch einmal den Befehl
docker image ls
aus, so sehen wir, dass unser selbst erstelltes Docker Image nun auch unter einem anderen Namen zur Verfügung steht.
9.) Natürlich räumen wir auch in diesem Blog-Artikel wieder unsere Umgebung auf. Dazu geben wir den Befehl
docker image rm basichelloworld wordpress ubuntu mysql
ein um die Images die oben angezeigt werden wieder zu löschen.
10.) Der Befehl
docker image ls
zeigt an, dass es noch ein Image gibt das den Namen hellodocker trägt. Obwohl wir ein Image gelöscht haben das auf der Id 2a1a5abca6b2 basiert ist das andere Image immer noch da.
11.) Der Versuch dieses Image mit
docker image rm hellodocker
zu löschen schlägt fehl, da es noch einen Container gibt der auf diesem Image beruht.
12.) Um diesen Container zu sehen müssen wir den Befehl
docker container ls -a
angeben, da er aktuell nicht ausgeführt wird.
13.) Um den Container zu löschen geben wir den Befehl
docker container rm 4a583817f7c5
ein. Wie bekannt wird die erfolgreiche Ausführung des Befehls durch die Ausgabe der Container-Id bestätigt.
14.) Nun ist es auch möglich das Image mit dem Befehl
docker image rm hellodocker
docker image rm hellodocker
zu entfernen.