hier eine Auflistung meiner oft verwendeten Docker Befehle

  • **docker kill $(docker ps -q)**

    • stoppt alle Docker Container
  • **docker rm $(docker ps -a -q)**

    • entfernt alle docker container - auch die welche aktuell nicht laufen
  • **docker stop [name_des_containers]**

    • stoppt den laufenden Container mit dem Namen “name_des_containers”

    • alternativ kann auch kill verwendet werden

  • docker start [`name_des_containers`]

    • startet einen angehaltenen Container

    • statt des Container Names kann auch die Container ID oder auch nur der Anfang der Container ID übergeben werden.

  • **docker ps**

    • zeigt alle laufenden Container an
  • **docker ps -a**

    • zeigt alle Container an
  • **docker ps -q**

    • zeigt die ID’s der laufenden Container an
  • docker ps -qa

    • ziegt die ID’s aller Container an
  • **docker pull [name_des_images]**

    • holt ein Image von registry.hub.docker.com welches der Standard ist
  • **docker logs -f [name_des_containers]**

    • zeigt die fortlaufenden Logs des Containers an
  • **docker image inspect [name_des_images]**

    • zeigt Details zum Docker Image
  • **docker run [name_des_images]**

    • startet einen neuen Container

    • **-d**

      • startet den Container im Hintergrund als “Deamon”
    • **-p [host_port]:[container_port]**

      • verbindet den host_port mit dem container_port
  • docker images

    • zeigt alle Images welche lokal verfügbar sind
  • docker kill $(docker ps -q)

    • beendet alle laufenden Container
  • docker rm $(docker ps -q -a)

    • löscht alle beendeten Container
  • docker rmi [name_des_images]

    • entfernt das Image
  • docker rmi $(docker images -q -f dangling=true)

    • entfernt alle Images welche keine Version haben
  • docker rmi $(docker images -q)

    • entfernt alle Images
  • docker volume prune

    • löscht alle Volumes welche nicht von einem Container verwendet werden

    • löscht nicht die Inhalte der Pfade der Volumes

  • docker volume rm $(docker volume ls -f dangling=true -q)

    • siehe auch prune
  • docker build -t [tag_name]

    • baut das Image in dem Verzeichnis mit dem Dockerfile
  • docker exec -it [name_des_containers] bash

    • öffnet eine Kommandozeile im Container

und Images

  • RabbitMQ

    • docker run --rm -e RABBITMQ_DEFAULT_USER=xxxxxxxU -e RABBITMQ_DEFAULT_PASS=xxxxxxxP -h rabbitmq --name rabbit -p 15672:15672 -p 5672:5672 rabbitmq:3.12.6-management

      • holt die entsprechende Version von Rabbit inkl. der Management Konsole - diese ist dann erreichbar über http://127.0.0.1:15672/#/

      • da der Parameter --rm gesetzt ist werden beim Beenden des Containers auch alle Konfigurationen gelöscht

    • docker run -d -h rabbitmq --name rabbit -p 8080:15672 -p 5672:5672 -v /$DOCKER_VOLUMES_BASE/rabbitmq:/var/lib/rabbitmq rabbitmq:management

      • holt die neueste Version inklusive der Verwaltungsoberfläche auf http://localhost:8080/#/

      • Die Standard Anmeldung ist Benutername “guest” und Passwort “guest”

      • vorher die Umgebungsvariable setzen mit

        • export DOCKER_VOLUMES_BASE=/myfullpath
  • Redis

  • Mongo

    • docker run -d -p 27017:27017 -v localdirectory:/data/db mongo
      • startet den Mongo Container mit einem verbundenen Host Laufwerk (v = Volume)
  • Postgres

    • docker run --name pg-docker -e POSTGRES_PASSWORD=xxxxxxxP -d -p 5432:5432 postgres
      • startet Postgres ohne dass die Daten gelöscht werden - der Benutzer “postgres” hat das Passwort “xxxxxxxP”
  • MySql

    • docker run --name some-mysql -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d -v localdir:/var/lib/mysql -p 3306:3306 mysql