2_Befehle - OTH-AW/isac-oth-aw GitHub Wiki

Commands

Hinweis: Bei Angabe von Container-IDs muss man nie die ganze ID angeben. Sobald der Anfang eindeutig ist, reicht das.

docker run nginx[:tag]

  • runs the image nginx, pulled from dockerhub if not existing
  • hinweis run ubuntu: wird heruntergeladen, beim Ausführen aber direkt stopped: Why? Container sind nicht dafür gedacht, OS zu enthalten. Container sind für einen bestimmten Task / Analyse / Webservice / Software gedacht. Wenn der Task fertig ist, wird der Container gestoppt. Würde funktionieren: docker run ubuntu sleep 5 (ubuntu "läuft" 5 Sekunden, wird danach beendet)

run -i

  • Bei benötigten Eingabefeldern muss man das interactive-flag setzen
  • run kodekloud/simple-prompt-docker
  • run -i kodekloud/simple-prompt-docker

run -t

  • attached ein terminal, oft verwendet mit flag

run -it

  • -i und -t

Port Mapping (Internal Container IP <=> Docker Host)

run -p 8000:5000 kodekloud/webapp
  • Man hat sonst keinen Zugriff auf die Website, da intern eine URL verwendet wird, auf die man sonst keinen Zugriff hat
  • Man kann damit verschiedene Container auf verschiedenen Ports hosten

Volume Mapping (Persistance)

run -v /opt/datadir:/var/lib/mysql mysql

  • Sonst werden jedes mal, wenn man den Container beendet / entfernt, die Daten gelöscht

pull nginx

  • pull, but not run image from dockerhub

run -d

  • führt den container im "detached" mode aus

attach <id>

  • attached die console zum angegebenen container

ps

  • lists all running containers

ps -a

  • lists all running and previous exited containers

stop <name|id>

  • stoppt container

rm <id>

  • entfernt container

images

  • zeigt verfügbare images an

rmi nginx

  • entfernt image, dabei müssen alle container gestoppt sein

exec <id> cat /etc/hosts

  • führt bei einem container einen Befehl aus

inspect <id>

  • Zeigt details des containers an

logs <id>

  • Zeigt den derzeitigen Konsolen-Output des Containers an

save,export,load,import

  • Import und Export von Images und Containern

Docker Run Links

Man kann beim Ausführen von Containern auch einen Namen übergeben. Dieser Name kann dann für das Ansprechen dieses Containers verwendet werden. Das ist vor allem dann wichtig, wenn andere Container mit diesem verbunden werden sollen. Hier wird zum Beispiel eine Python-Voting App, die mit Flask als Webserver dient, mit Redis (In-Memory DB) verbunden.

docker run -d --name=redis redis

docker run -d --name=vote -p 5000:80 --link redis:redis voting-app

Intern wird hier eigentlich nichts anderes gemacht als das Mapping von localhost auf 127.0.0.1. Kommuniziert wird dann mit 'localhost', eigentlich aber mit 127.0.0.1.

⚠️ **GitHub.com Fallback** ⚠️