infrastruktur:rz:docker:best-practices
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
infrastruktur:rz:docker:best-practices [2020-09-11 23:39] – hase | infrastruktur:rz:docker:best-practices [2020-09-18 21:08] (aktuell) – hase | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== |
{{tag> storage-server infrastructure shackoperations }} | {{tag> storage-server infrastructure shackoperations }} | ||
Zeile 6: | Zeile 6: | ||
| 0.1 | hase | 11-09-2020 | Seite angelegt | | | 0.1 | hase | 11-09-2020 | Seite angelegt | | ||
| 0.2 | hase | 12-09-2020 | Resourcenplanung/ | | 0.2 | hase | 12-09-2020 | Resourcenplanung/ | ||
+ | | 0.3 | hase | 12-09-2020 | Trennung nach Compose File und Docker Image | | ||
====== Best Practices für Docker Images im shack ====== | ====== Best Practices für Docker Images im shack ====== | ||
- | Hi, hier sollen alle Best Practices für shack Docker Images aufgeschrieben werden. | + | Hi, hier sollen alle Best Practices für shack Docker Images |
- | ====== Must-Haves | + | ====== Compose Files ====== |
- | ===== Healthcheck | + | ===== Must-Haves ===== |
+ | ==== Healthcheck ==== | ||
Ein Docker Container sollte einen Healthcheck definiert haben. Siehe hierzu | Ein Docker Container sollte einen Healthcheck definiert haben. Siehe hierzu | ||
- [[https:// | - [[https:// | ||
- [[https:// | - [[https:// | ||
- | ===== Resourcenplanung | + | ==== Resourcenplanung ==== |
Ein Docker Container sollte immer eine Begrenzung der CPU und RAM Resourcen bekommen. Ohne Resourcensteuerung werden dem Container alle CPUs und jeglicher RAM angezeigt; diesen kann er dann auch allokieren (z.B. bei einem Memory Leak wird er das tun) | Ein Docker Container sollte immer eine Begrenzung der CPU und RAM Resourcen bekommen. Ohne Resourcensteuerung werden dem Container alle CPUs und jeglicher RAM angezeigt; diesen kann er dann auch allokieren (z.B. bei einem Memory Leak wird er das tun) | ||
< | < | ||
Zeile 25: | Zeile 27: | ||
</ | </ | ||
- | ===== Passwörter / Secrets | + | ==== Passwörter / Secrets ==== |
Passwörter müssen in ein zweites Compose File (docker-compose.secret.yml) eingetragen und mit < | Passwörter müssen in ein zweites Compose File (docker-compose.secret.yml) eingetragen und mit < | ||
Zeile 31: | Zeile 33: | ||
- | ===== Registry ===== | + | ===== Optional ===== |
- | Die Docker Images sollten alle unter einem Ort verfügbar sein. Momentan existiert eine Gruppe auf gitlab.com | + | ==== Container ohne Netzwerk ==== |
- | [[https:// | + | |
- | + | ||
- | ===== docker-compose Example File ===== | + | |
- | Es muss ein docker-compose.yml Beispiel existieren. | + | |
- | + | ||
- | + | ||
- | ====== Optional | + | |
- | ===== CI ===== | + | |
- | Die Docker Images sollten alle über eine CI Pipeline automatisch über Gitlab Runner gebaut werden. In jedem Git Repo für ein Docker Image muss daher eine .gitlab-ci.yml vorhanden sein. | + | |
- | + | ||
- | ===== Service-Handling ===== | + | |
- | Das Service-Handling in Containern kann über viele Wege abgehandelt werden. Empfohlen ist als Entrypoint entweder | + | |
- | * direkt den Befehlsaufruf mit Parametern oder | + | |
- | * ein Shell-Skript, | + | |
- | + | ||
- | ===== Externe Abhängigkeiten ===== | + | |
- | Wenn ein Container eine externe Abhängigkeit hat darf diese nicht hart ausgelegt sein. Crashed der Container in Abwesenheit der Abhängigkeit muss das Design überarbeitet werden. | + | |
- | + | ||
- | + | ||
- | ===== Container ohne Netzwerk | + | |
Wenn ein Container kein Netzwerk braucht (watchtower oder autoheal) kann mit Hilfe des Parameters network_mode das Netzwerk ausgeschaltet werden. Dann wird kein " | Wenn ein Container kein Netzwerk braucht (watchtower oder autoheal) kann mit Hilfe des Parameters network_mode das Netzwerk ausgeschaltet werden. Dann wird kein " | ||
< | < | ||
Zeile 60: | Zeile 42: | ||
</ | </ | ||
+ | ---- | ||
+ | ====== Docker Image ====== | ||
+ | ===== Must-Haves ===== | ||
+ | ==== docker-compose Example File ==== | ||
+ | Es muss ein docker-compose.yml Beispiel existieren. | ||
+ | ==== Externe Abhängigkeiten ==== | ||
+ | Wenn ein Container eine externe Abhängigkeit hat darf diese nicht hart ausgelegt sein. Crashed der Container in Abwesenheit der Abhängigkeit muss das Design überarbeitet werden. | ||
+ | ===== Optional ===== | ||
+ | ==== Registry ==== | ||
+ | Die Docker Images sollten alle unter einem Ort verfügbar sein. Momentan existiert eine Gruppe auf gitlab.com | ||
+ | [[https:// | ||
+ | ==== CI ==== | ||
+ | Die Docker Images sollten alle über eine CI Pipeline automatisch über Gitlab Runner gebaut werden. In jedem Git Repo für ein Docker Image muss daher eine .gitlab-ci.yml vorhanden sein. | ||
+ | ==== Service-Handling ==== | ||
+ | Das Service-Handling in Containern kann über viele Wege abgehandelt werden. Empfohlen ist als Entrypoint entweder | ||
+ | * direkt den Befehlsaufruf mit Parametern oder | ||
+ | * ein Shell-Skript, |
infrastruktur/rz/docker/best-practices.1599860380.txt.gz · Zuletzt geändert: 2020-09-11 23:39 von hase