it-wiki:docker:docker_createcontainerimages
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
it-wiki:docker:docker_createcontainerimages [2021/10/17 16:04] – [1. Ein Base-Image erstellen] marko | it-wiki:docker:docker_createcontainerimages [2021/10/18 06:50] (aktuell) – [6. Dein neues Docker-Image starten. Wohooo!] marko | ||
---|---|---|---|
Zeile 60: | Zeile 60: | ||
- Benutze in der nächsten Zeile den Befehl COPY Befehl, um die index.html in das Nginx-Verzeichnis / | - Benutze in der nächsten Zeile den Befehl COPY Befehl, um die index.html in das Nginx-Verzeichnis / | ||
Hast du das gemacht? Gut! Dann geht es jetzt weiter mit der Freischaltung der Ports. | Hast du das gemacht? Gut! Dann geht es jetzt weiter mit der Freischaltung der Ports. | ||
+ | |||
+ | ===== 3. Ports freigeben (öffnen) ===== | ||
+ | Wenn die Dateien in unser Image kopiert wurden und die Dependencies heruntergeladen sind, musst du noch den Port definieren. Genauer gesagt musst du spezifizieren, | ||
+ | |||
+ | Dafür benutzt du den Befehl //EXPOSE < | ||
+ | |||
+ | **Docker-Beispiel, | ||
+ | <code bash> | ||
+ | EXPOSE 80 433 | ||
+ | EXPOSE 7000-8000 | ||
+ | </ | ||
+ | Wenn du diesen Schritt nachmachen möchtest, dann gib mit dem obigen Befehl den Port 80 frei. Der Port 80 muss geöffnet sein, damit unser Webserver (Nginx) verfügbar ist. Füge die Zeile (EXPOSE 80) deinem Dockerfile hinzu, um diesen Schritt auszuführen und speichere deine Datei. | ||
+ | |||
+ | ===== 4. Anwendung per Befehl starten ===== | ||
+ | Fassen wir kurz zusammen was bis hierhin passiert ist. Du hast ein Docker-Image konfiguriert und festgelegt, auf welchen Port deine Anwendung zugreifen muss. Jetzt ist es an der Zeit den Befehl zu definieren, der deine Anwendung startet. | ||
+ | |||
+ | Der CMD-Befehl in einem Dockerfile definiert den Standardbefehl, | ||
+ | |||
+ | **CMD Befehl mit Argumenten als Array:** | ||
+ | |||
+ | [" | ||
+ | Die obige Zeile würde dann den Befehl **"cmd -a "arga value" -b argb-value" | ||
+ | |||
+ | Jetzt bist du wieder gefragt: Der Befehl zum Ausführen von NGINX lautet nginx -g daemon off;. | ||
+ | |||
+ | Setze diesen Befehl als Standardbefehl in deinem Dockerfile. | ||
+ | |||
+ | ===== 5. Das Container-Image erstellen ===== | ||
+ | Nachdem du dein Dockerfile definiert hast, musst du es mit docker build in ein Image umwandeln. Der Befehl build nimmt ein Verzeichnis mit dem Dockerfile auf, führt die Schritte aus und speichert das Image in deiner lokalen Docker Engine. Wenn einer der Schritte aufgrund eines Fehlers fehlschlägt, | ||
+ | |||
+ | **Willst du diesen Schritt nachmachen? | ||
+ | |||
+ | Benutze den Befehl **docker build**, um das Image zu bauen. Du kannst dem Image einen lesbaren Namen geben, indem du das Argument -t < | ||
+ | <code bash> | ||
+ | docker build -t mein-image | ||
+ | </ | ||
+ | Tipp: Mit dem Befehl docker images siehst du eine Liste deiner Images. Damit kannst du prüfen, ob der Build-Vorgang erfolgreich beendet wurde. | ||
+ | |||
+ | ===== 6. Dein neues Docker-Image starten. Wohooo! ===== | ||
+ | Wenn das Image erfolgreich erstellt wurde, kannst du den Container nun auf die gleiche Weise starten, wie du es schon aus vorherigen Tutorials kennst. Solltest du noch nicht wissen, wie du ein Image startest, findest du nachfolgend den Befehl dafür. | ||
+ | |||
+ | **Du möchtest diesen Schritt nachmachen? | ||
+ | |||
+ | Der Webserver Nginx ist so konzipiert, dass er als Hintergrund-Prozess läuft. Du solltest daher die Option -d verwenden. Beim Ausführen solltest du als Argument ebenso den Port 80 an deinen Container binden (p 80:80). | ||
+ | |||
+ | Klingt kompliziert? | ||
+ | |||
+ | **Hier der fertige docker run Befehl:** | ||
+ | <code bash> | ||
+ | docker run -d -p 80:80 <Image ID oder Shortname> | ||
+ | </ | ||
+ | Da ich mein Image im letzten Schritt " | ||
+ | <code bash> | ||
+ | docker run -d -p 80:80 mein-image | ||
+ | </ | ||
+ | Du kannst überprüfen, |
it-wiki/docker/docker_createcontainerimages.1634486693.txt.gz · Zuletzt geändert: von marko