2_Befehle - OTH-AW/isac-oth-aw GitHub Wiki
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
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
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
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.