Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
docker [21/09/2024 - 10:34] – [Docker Build] thommie4 | docker [11/03/2025 - 21:25] (aktuell) – freifunk_netzwissen.de | ||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
Docker Daten-Ablage auf btrfs Partition verlagern | Docker Daten-Ablage auf btrfs Partition verlagern | ||
+ | root@docker3:/ | ||
< | < | ||
- | |||
- | root@docker3:/ | ||
- | |||
{ | { | ||
" | " | ||
" | " | ||
} | } | ||
- | |||
</ | </ | ||
- | |||
- | ==== Images ==== | ||
- | |||
- | Images aus Repository runterladen | ||
- | |||
- | '' | ||
- | |||
- | Alle Images im lokalen repository zeigen | ||
- | |||
- | < | ||
- | root@develd: | ||
- | REPOSITORY | ||
- | local_discourse/ | ||
- | grundic/ | ||
- | discourse/ | ||
- | discourse/ | ||
- | local_discourse/ | ||
- | discourse/ | ||
- | xbrowsersync/ | ||
- | |||
- | </ | ||
- | |||
- | Image löschen | ||
- | |||
- | < | ||
- | docker image rm [id] | ||
- | |||
- | </ | ||
- | |||
- | Image Repo aufräumen und ungenutzte Images löschen | ||
- | |||
- | < | ||
- | docker image prune [OPTIONS] | ||
- | |||
- | </ | ||
- | |||
- | z.B: alle images löschen, die nicht von mindestens einem Container genutzt werden | ||
- | |||
- | < | ||
- | docker image prune -a | ||
- | |||
- | </ | ||
- | |||
- | ==== Container Management ==== | ||
- | |||
- | Alle Container auf einmal stoppen | ||
- | |||
- | < | ||
- | docker kill $(docker ps -q) | ||
- | docker rm $(docker ps -a -q) | ||
- | docker rmi $(docker images -q) | ||
- | |||
- | </ | ||
- | |||
- | === Container aus heruntergeladenem Image erzeugen === | ||
- | |||
- | |||
- | '' | ||
- | |||
- | Alle laufenden und gestoppten Container zeigen: | ||
- | |||
- | '' | ||
- | |||
- | Filtern auf laufende Container | ||
- | |||
- | < | ||
- | root@develd: | ||
- | CONTAINER ID | ||
- | 31f9a6ffcab8 | ||
- | 7c3cd1abf744 | ||
- | 05f7f43d0493 | ||
- | |||
- | </ | ||
- | |||
- | Laufende und gestoppte, aber nur die container id ausgeben | ||
- | |||
- | '' | ||
- | |||
- | Container zeigen, die nicht laufen | ||
- | |||
- | < | ||
- | root@develd: | ||
- | b39916cf84e2 | ||
- | e6e7c809ad34 | ||
- | |||
- | </ | ||
- | |||
- | Container starten/ | ||
- | |||
- | '' | ||
- | |||
- | **Alle** | ||
- | |||
- | < | ||
- | docker stop $ (docker ps -a -q) docker rm $(docker ps -a -q) | ||
- | |||
- | </ | ||
- | |||
- | Diese können mit docker rm gelöscht werden | ||
- | |||
- | < | ||
- | root@develd: | ||
- | e6e7c809ad34 | ||
- | |||
- | </ | ||
- | |||
- | Alle Container löschen, die nicht laufen | ||
- | |||
- | < | ||
- | docker container prune | ||
- | |||
- | </ | ||
- | |||
- | Restart policy ändern | ||
- | |||
- | < | ||
- | docker update --restart=no matrix_synapse_1 | ||
- | |||
- | </ | ||
- | |||
- | ==== Einen Container betreten ==== | ||
- | |||
- | < | ||
- | docker exec -t -i container_ID /bin/bash | ||
- | |||
- | </ | ||
- | |||
- | Alternativ: stdin/out an den Container hängen: | ||
- | |||
- | < | ||
- | docker attach [OPTIONS] CONTAINER | ||
- | |||
- | </ | ||
- | |||
- | Achtung: wieder raus mit **CTRL-p CTRL-q. **Details siehe [[https:// | ||
===== Docker Build ===== | ===== Docker Build ===== | ||
- | |||
https:// | https:// | ||
- | Geht immer von einem Dockerfile aus: https:// | + | Der Build geht immer von einem Dockerfile aus: https:// |
< | < | ||
Zeile 243: | Zeile 104: | ||
</ | </ | ||
- | Der Build wird normalerweise gecacht, das kann man abschalten: | + | Dockerfle Syntax check |
< | < | ||
- | docker build . | + | docker build --check |
</ | </ | ||
- | Dockerfle Syntax check | + | Der Build wird normalerweise gecacht, das kann man abschalten: |
< | < | ||
- | docker | + | docker --no-cache build . |
</ | </ | ||
- | Docker build mit tag: | + | Docker build ohne cache, aber mit tag: |
< | < | ||
- | docker build . -t thommie/example-node-app | + | docker build --no-cache |
</ | </ | ||
Zeile 302: | Zeile 163: | ||
| | ||
Successfully built c6c0d41f944a | Successfully built c6c0d41f944a | ||
+ | </ | ||
+ | |||
+ | ==== Images ==== | ||
+ | |||
+ | Images aus Repository runterladen | ||
+ | |||
+ | '' | ||
+ | |||
+ | Alle Images im lokalen repository zeigen | ||
+ | |||
+ | < | ||
+ | root@develd: | ||
+ | REPOSITORY | ||
+ | local_discourse/ | ||
+ | grundic/ | ||
+ | discourse/ | ||
+ | discourse/ | ||
+ | local_discourse/ | ||
+ | discourse/ | ||
+ | xbrowsersync/ | ||
</ | </ | ||
+ | |||
+ | Image löschen | ||
+ | |||
+ | < | ||
+ | docker image rm [id] | ||
+ | |||
+ | </ | ||
+ | |||
+ | Image Repo aufräumen und ungenutzte Images löschen | ||
+ | |||
+ | < | ||
+ | docker image prune [OPTIONS] | ||
+ | |||
+ | </ | ||
+ | |||
+ | z.B: alle images löschen, die nicht von mindestens einem Container genutzt werden | ||
+ | |||
+ | < | ||
+ | docker image prune -a | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Container Management ==== | ||
+ | |||
+ | Alle Container auf einmal stoppen | ||
+ | |||
+ | < | ||
+ | docker kill $(docker ps -q) | ||
+ | docker rm $(docker ps -a -q) | ||
+ | docker rmi $(docker images -q) | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Container aus heruntergeladenem Image erzeugen ==== | ||
+ | |||
+ | '' | ||
+ | |||
+ | |||
+ | |||
+ | Alle laufenden und gestoppten Container zeigen: | ||
+ | |||
+ | '' | ||
+ | |||
+ | Filtern auf laufende Container | ||
+ | |||
+ | < | ||
+ | root@develd: | ||
+ | CONTAINER ID | ||
+ | 31f9a6ffcab8 | ||
+ | 7c3cd1abf744 | ||
+ | 05f7f43d0493 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Laufende und gestoppte, aber nur die container id ausgeben | ||
+ | |||
+ | '' | ||
+ | |||
+ | Container zeigen, die nicht laufen | ||
+ | |||
+ | < | ||
+ | root@develd: | ||
+ | b39916cf84e2 | ||
+ | e6e7c809ad34 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Container starten/ | ||
+ | |||
+ | '' | ||
+ | |||
+ | **Alle** | ||
+ | |||
+ | < | ||
+ | docker stop $ (docker ps -a -q) docker rm $(docker ps -a -q) | ||
+ | |||
+ | </ | ||
+ | |||
+ | Diese können mit docker rm gelöscht werden | ||
+ | |||
+ | < | ||
+ | root@develd: | ||
+ | e6e7c809ad34 | ||
+ | |||
+ | </ | ||
+ | |||
+ | Alle Container löschen, die nicht laufen | ||
+ | |||
+ | < | ||
+ | docker container prune | ||
+ | |||
+ | </ | ||
+ | |||
+ | Restart policy ändern | ||
+ | |||
+ | < | ||
+ | docker update --restart=no matrix_synapse_1 | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Einen Container betreten ==== | ||
+ | |||
+ | < | ||
+ | docker exec -t -i container_ID /bin/bash | ||
+ | |||
+ | </ | ||
+ | |||
+ | Alternativ: stdin/out an den Container hängen: | ||
+ | |||
+ | < | ||
+ | docker attach [OPTIONS] CONTAINER | ||
+ | |||
+ | </ | ||
+ | |||
+ | Achtung: wieder raus mit **CTRL-p CTRL-q. **Details siehe [[https:// | ||
===== Docker Compose ===== | ===== Docker Compose ===== | ||
Zeile 317: | Zeile 313: | ||
< | < | ||
- | ===== compose yaml validieren | + | compose yaml validieren |
< | < | ||
Zeile 324: | Zeile 321: | ||
</ | </ | ||
- | ====== Update per docker compose | + | ==== Update per docker compose ==== |
Update der Images, die im compose file referenziert sind | Update der Images, die im compose file referenziert sind | ||
Zeile 330: | Zeile 327: | ||
< | < | ||
docker compose -f docker-compose-pro.yaml pull | docker compose -f docker-compose-pro.yaml pull | ||
- | |||
</ | </ | ||
- | Daraus die Container neu bauen und startenb | + | Daraus die Container neu bauen und starten |
< | < | ||
Zeile 339: | Zeile 335: | ||
</ | </ | ||
+ | |||
+ | Bauen **ohne** caching und dann starten | ||
< | < | ||
- | docker compose -f docker-compose-pro.yaml up --force-recreate --build | + | docker compose -f docker-compose-pro.yaml up --force-recreate --build |
</ | </ | ||
- | Docker Compose startet | + | Docker Compose startet Container nicht daemonisiert. |
< | < | ||
- | docker compose up -d | + | docker compose up --force-recreate --build |
</ | </ | ||
- | Üblicherweise | + | Um Container als Daemon zu starten, |
===== Docker Netzwerke ===== | ===== Docker Netzwerke ===== | ||
- | Standardmässig werden drei Netze bridge, host, none angelegt. Alle anderen sind custom Networks, die z.B: über compose angelegt wurden: | + | Standardmässig werden drei Netze bridge, host, none angelegt. Alle anderen sind custom Networks, die z.B. über compose angelegt wurden: |
< | < | ||
Zeile 372: | Zeile 368: | ||
Container werden an die bridge " | Container werden an die bridge " | ||
+ | Dies zeigt den Zustand eines Docker networks | ||
< | < | ||
docker network inspect bridge | docker network inspect bridge | ||
- | |||
</ | </ | ||
- | sieht man den Zustand eines Docker networks | + | ==== Docker |
- | + | ||
- | ==== Custom networks ==== | + | |
docker network create erzeugt ein eigenes Netzwerk: | docker network create erzeugt ein eigenes Netzwerk: | ||
Zeile 385: | Zeile 379: | ||
< | < | ||
docker network create –subnet 192.168.82.0/ | docker network create –subnet 192.168.82.0/ | ||
- | |||
</ | </ | ||
+ | Danach anschauen | ||
< | < | ||
locutus:/ | locutus:/ | ||
- | |||
</ | </ | ||
Zeile 397: | Zeile 390: | ||
< | < | ||
docker attach container1 | docker attach container1 | ||
- | |||
</ | </ | ||
- | sieht man das Netzwerk | + | sieht man das Netzwerk |
===== Docker logs ===== | ===== Docker logs ===== | ||
Zeile 413: | Zeile 405: | ||
===== Docker volumes ===== | ===== Docker volumes ===== | ||
- | Volumes sind Verzeichnisse/ | + | Volumes sind Verzeichnisse/ |
Doku: [[https:// | Doku: [[https:// | ||
In compose: | In compose: | ||
- | < | ||
+ | < | ||
services: | services: | ||
frontend: | frontend: | ||
Zeile 428: | Zeile 420: | ||
myapp: | myapp: | ||
external: true | external: true | ||
- | |||
</ | </ | ||
- | Syntax: **[lokales volume Verzeichnis Host]: | + | Allgemeine |
- | Immer relativ zum compose file gesehen! | + | Verzeichnisorte werden immer relativ zum Ort des compose file gesehen! |
- | + | ====== Portainer | |
- | + | ||
- | + | ||
- | ===== Portainer ===== | + | |
< | < | ||
docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v / | docker run -d -p 8000:8000 -p 9000:9000 --name portainer --restart=always -v / | ||
- | |||
</ | </ | ||