Ausführen von Containern aus Images
Nachdem Sie einige Docker-Images heruntergeladen haben, wollen wir lernen, wie man Container basierend auf diesen Images erstellt und ausführt.
Ausführen eines einfachen Containers
Um einen Container aus einem Image auszuführen, verwenden Sie den Befehl docker run
:
docker run ubuntu echo "Hello from Docker"
Dieser Befehl:
- Erstellt einen neuen Container basierend auf dem Ubuntu-Image
- Führt den Befehl
echo "Hello from Docker"
innerhalb des Containers aus
- Beendet sich, nachdem der Befehl abgeschlossen ist
Sie sollten die Ausgabe sehen:
Hello from Docker
Ausführen eines interaktiven Containers
Um mit einem Container zu interagieren, verwenden Sie die Flags -it
(interaktives Terminal):
docker run -it ubuntu bash
Dies startet eine Bash-Shell innerhalb des Containers. Sie befinden sich jetzt effektiv "innerhalb" des Containers und können Befehle ausführen.
Probieren Sie ein paar Befehle aus:
ls
cat /etc/os-release
Um den Container zu verlassen, geben Sie ein:
exit
Auflisten der laufenden Container
Um alle laufenden Container anzuzeigen:
docker ps
Da unsere Container sofort nach Abschluss beendet wurden, sehen Sie möglicherweise keine Ausgabe. Um alle Container anzuzeigen, einschließlich der gestoppten:
docker ps -a
Dies zeigt alle Container, ihren Status und wann sie erstellt/beendet wurden.
Container-Lebenszyklus (Container Lifecycle)
Container haben einen Lebenszyklus:
- Erstellt (Created): Container wird erstellt, aber nicht gestartet
- Läuft (Running): Container wird aktuell ausgeführt
- Pausiert (Paused): Die Containerausführung wird pausiert
- Gestoppt (Stopped): Container wurde beendet, existiert aber noch
- Entfernt (Removed): Container wird gelöscht
Sie können einen gestoppten Container mit folgendem Befehl entfernen:
docker rm <container_id>
Ersetzen Sie <container_id>
durch die ID, die in der Ausgabe von docker ps -a
angezeigt wird.
Um einen Container nach dem Beenden automatisch zu entfernen, verwenden Sie das Flag --rm
:
docker run --rm ubuntu echo "This container will be removed after execution"
Ausführen eines Webserver-Containers
Versuchen wir etwas Praktischeres, indem wir einen Nginx-Webserver ausführen:
docker pull nginx:alpine
Dies zieht ein leichtgewichtiges Nginx-Image basierend auf Alpine Linux.
Führen Sie nun einen Container aus, der Port 8080 auf Ihrem Host auf Port 80 im Container mappt:
docker run -d -p 8080:80 --name my-nginx nginx:alpine
Dieser Befehl:
-d
: Führt den Container im Detached-Modus (Hintergrund) aus
-p 8080:80
: Mappt Port 8080 auf Ihrem Host auf Port 80 im Container
--name my-nginx
: Benennt den Container "my-nginx"
Jetzt können Sie auf die Nginx-Willkommensseite zugreifen, indem Sie in einem Webbrowser zu http://localhost:8080
navigieren oder curl verwenden:
curl http://localhost:8080
Sie sollten den HTML-Inhalt der Nginx-Willkommensseite sehen.
Um diesen Container zu stoppen und zu entfernen:
docker stop my-nginx
docker rm my-nginx