Nach installation:
Version: docker version
docker user anpassen: usermod -aG docker <Benutzername>
Speicherort für alle Container, Images, etc. und weitere relevanten Dateien: /var/lib/docker
IMAGES
sind eine Kombination aus Dateisystem und Parameter, sind Grundlage für docker Container. Auf https://hub.docker.com/ sind fertige Images, welche heruntergeladen werden können (pullen). Von Linux aus mit: docker image pull author/imagename:tag z.B. docker image pull nginx
Übersicht über die installierten Images: docker images
Einzelheiten eines Images anzeigen lassen: docker image inspect <IMAGE ID>
Info über beim Start ausgeführter Befehle: docker image inspect 719cd2e3ed04 | grep -i cmd
Suche auf docker Hub: docker search <Suchbegriff>
Ein lokales Image zu aktualisieren, das entsprechende Image noch einmal pullen. Alle lokalen Images aktualisieren: docker images | grep -v REPOSITORY | awk '{print $1}' | xargs -L1 docker pull
Images entfernen: docker image rm <IMAGE ID>
Am Image gemachten Veränderungen anzeigen: docker history <Image-ID/Imagename>
CONTAINER
Container von einem beliebigen Image zu starten. docker container run <author/imagename:tag> Beim Aufruf wird das Image automatisch geladen, wenn es lokal noch nicht gespeichert ist. STRG-C verlässt den Container wieder
Parameter -d startet den Container im Hintergrund: docker container run -d nginx
Parameter --name dem Container einen Namen zuweisen: docker container run --name meine_busybox busybox
Alle Container anzeigen: docker container ls -a oder docker ps -a
Alle beendeten Container entfernen: docker container prune
Bei einem laufenden Container in die Shell „reinspringen“: docker exec -it nginx bash
Container auflisten: docker ps
Container starten: docker start <container-ID/containername>
Container stoppen: docker stop <container-ID/containername>
Container neu starten: docker restart <container-ID/containername>
Container löschen: docker rm <container-ID/containername>
Prozesse in einem Container anzeigen: docker top <container-ID/containername>
Prozesse in einem Container pausieren: docker pause <container-ID/containername>
pausierten Container starten: docker unpause <container-ID/containername>
die Logs eines Containers anzeigen lassen: docker logs <container-ID/containername>
vom Container verwendete Ressourcen: docker stats <container-ID/containername>
alle einzelnen Parameter eines Containers anzeigen: docker inspect <container-ID/containername>
aus einem Container ein Image erzeugen: docker commit <CONTAINER ID/Containername> <Imagename>
PORTS / PORTMAPPING
Übersicht der lauschenden Ports und deren Zuordnung: docker ps
Container-Port mit -p auf einen festen Port auf dem Host mappen: docker container run -d -p 8080:80 nginx - der erste Port ist der Host und der zweite Port ist vom Container, mehrfach möglich. tcp und udp mit /tcp oder /udp nach der Portangabe. 8080:80/upd
IP-Adresse des Containers herausfinden: docker inspect <CONTAINER ID/Containername> | grep -i ipaddress
Portmapping anzeigen: docker container port <CONTAINER ID/Containername>
NETZWERK
Standard Netzwerke werden bei Installation von docker automatisch erstellt: docker0, bridge, host und none
Die bridge erstellt ein privates Netzwerk auf dem host, über das die Container kommunizieren. Automatisch auch Route ins Internet
Das host Netzwerk erlaubt dem Container den Netzwerk-Stack mit dem Host zu teilen - höhere Performance, aber Ports dürfen sich nicht überschneiden
none - keinerlei externe Routen, nur das loopback Device vom Container.
vorhandene Netzwerke anzeigen: docker network ls
Einzelheiten jedes Netzwerkes anzeigen: docker network inspect <NETWORK ID/NAME>
Netzwerk eins Containers anzeigen: docker container inspect <CONTAINER ID/Containername>
Netzwerke entfernen: docker network rm <NETWORK ID/NAME> - Warnung wenn Netzwerk noch von einem Container genutzt wird.
Neues Netzwerk anlegen: docker network create <Netzwerkname> - Automatisch bridge, wenn kein Parameter
Container Netzwerk zuordnen: docker container run -d -p 8080:80 --name nginx --network br0
Bestehenden Container einem weiteren docker-Netzwerk zuordnen: docker network connect <docker-Netzwerk> <CONTAINER ID/Containername>
Container aus einem docker-Netzwerk entfernen: docker network disconnect <docker-Netzwerk> <CONTAINER ID/Containername>
STORAGE
Volume erstellen: docker volume create <Volumename>
Alle Einzelheiten über ein Volume: docker volume inspect <Volumename>
Volume löschen: docker volume rm <Volumename>
Volume mounten: docker container run -d --name nginx_mount_test --mount type=volume,source=test_vol01,target=/usr/share/nginx/html/ nginx
Volume mit bind-mount: docker container run -d --name nginx_mount_test2 -v test_vol01:/usr/share/nginx/html/ nginx - 2. Möglichkeit: docker container run -d --name nginx_bind_mount_test --mount type=bind,source="$(pwd)"/zielordner,target=/mnt nginx
Quellen:
https://techgoat.net/index.php