Docker Befehle für den Alltag

docker-befehleDocker Befehle für den Alltag helfen wir bei deiner Arbeit

Um Docker im Alltag zu meisten, ist es ratsam sich ein paar Docker Befehle anzueignen und diese anwenden zu können. Ich möchte dir ein paar meiner alltäglichen Helfer in diesem Beitrag vorstellen.

Docker hat sich in den letzten Jahren immer mehr entwickelt und ist aus vielen Homelabs nicht mehr weg zu denken. Einige recht umfangreiche Infrastrukturen basieren vollständig auf dieser Art der Containerisierung. Im Laufe der Zeit wird man immer mehr zum Profi und kann auch komplexe Probleme schnell löschen. Als Anfänger allerdings steht man häufig vor Problemen.

Informationen über Docker Container

Wir starten mit einem Docker Befehl um die Informationen eines Containers, heißt IP-Adresse, Konfiguration und ähnliche Dinge einsehen zu können.

docker inspect {container name}

Log des Containers einsehen

Sollten alle Container immer problemlos laufen, bräuchten wir diesen Beitrag nicht. Aber wir wissen alle, dass das nicht der Fall ist. Um sich die Log Dateien bzw. das STDOUT des Containers anzuschauen gibt es den Befehl

docker logs {container name}

Dieser listet alle Loginformationen seit dem letzten Start des Containers auf. Dies kann also schon mal recht lang werden. Einfacher ist es dann den Befehl um ein -f zu erweitern

docker logs -f {container name}

Jetzt haben wir die Chance das Logfile dauerhaft anschauen zu können. Sobald der Container also etwas protokolliert, wird dies direkt angezeigt. Mit STRG+C können wir das abbrechen.

docker-befehle
Docker Befehle für den Alltag helfen wir bei deiner Arbeit

Alle Container stoppen

Manchmal muss man alle Container auf einmal beenden. Zum Beispiel wenn man Update am Hostsystem einspielen, das Hostsystem kontrolliert herunterfahren oder andere Wartungsarbeiten durchführen möchte.

Wer mit Docker Compose arbeitet und nur eine große Datei hat – davon sei übrigens abzuraten – hat es einfach. Allerdings ist das nur sehr selten der Fall.

docker stop $(docker ps -a -q)

Der Befehl stoppt alle Container (docker stop) die mit dem Befehl (docker -ps -a -q) gefunden werden. Also alle Container, egal welchen Status diese derzeit haben. Hier werden also Docker Befehle zusammen gefasst um dir das Leben direkt zu erleichtern.

Alle Container löschen

Ab und zu ist es auch notwendig alle Docker Container zu löschen. Zum Beispiel um neue Environment-Variablen einzulesen. Allerdings müssen wir erst alle Container stoppen, z. B. mit dem Befehl weiter oben.

Anschließend bedienen wir uns einer sehr ähnlichen Technik und löschen alle Container die mit docker ps gefunden werden

docker rm $(docker ps -a -q)

Ich hoffe ich konnte dir ein paar nützliche Docker Befehle mit an die Hand geben. Mich würde es noch interessieren, was deine Empfehlung für diese Liste wäre.

3 Kommentare

  1. „Wer mit Docker Compose arbeitet und nur eine große Datei hat – davon sei übrigens abzuraten – hat es einfach. Allerdings ist das nur sehr selten der Fall.“

    Warum rätst du davon ab, eine große Compose Datei zu haben?

    Liebe Grüße vom Selfhosted-Adventures Blog 🙂

    • Weil es sehr schnell sehr unübersichtlich wird, gerade wenn man mit „depends_on“ arbeitet. Zudem macht es meiner Meinung nach einfach mehr Sinn nach Anwendung oder zumindest nach Anwendungsgebiet sauber zu trennen.
      Im Regelfall bootet man den Server ja auch nicht so häufig durch, dass man da groß Probleme mit dem Neustart hat. Für den Fall habe ich mir allerdings auch eine bash-Script geschrieben, dass rudimentär einfach alle docker-compose Dateien nacheinander ausführt.

      • Ich bin bei knapp 30 Containern. Da leidet die Übersichtlichkeit, dass stimmt schon, aber schnell in der Compose Datei was zu suchen, geht ja auch super schnell und ich komme damit super klar. Zusätzlich habe ich die Compose Dateien mit Kommentaren versehen bzw in Abschnitte unterteilt.

        Es kommt natürlich immer auf die persönliche Präferenz an und ich mag es lieber so.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.