Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:docker:installation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:docker:installation [2026/05/03 19:14]
ingo_wichmann
admin_grundlagen:docker:installation [2026/06/01 08:08] (aktuell)
ingo_wichmann [lokalen Proxy / Cache verwenden]
Zeile 10: Zeile 10:
   apt update   apt update
 Pakete installieren:​ Pakete installieren:​
-  apt install docker-ce docker-ce-cli docker-compose-plugin+  apt install docker-ce ​containerd.io ​docker-ce-cli docker-compose-plugin docker-buildx-plugin
  
 ++++ Alternativ: Docker Packet von Debian | ++++ Alternativ: Docker Packet von Debian |
Zeile 20: Zeile 20:
   dnf config-manager --add-repo https://​download.docker.com/​linux/​centos/​docker-ce.repo   dnf config-manager --add-repo https://​download.docker.com/​linux/​centos/​docker-ce.repo
 Pakete installieren:​ Pakete installieren:​
-  dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin+  dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin
  
 +++++ Podman |
 +  dnf install podman
 +++++
 ===== Docker Service aktivieren ===== ===== Docker Service aktivieren =====
   systemctl --now enable docker   systemctl --now enable docker
Zeile 34: Zeile 37:
 -> ''​CONTAINER ID   ​IMAGE ​    ​COMMAND ​  ​CREATED ​  ​STATUS ​   PORTS     ​NAMES''​ -> ''​CONTAINER ID   ​IMAGE ​    ​COMMAND ​  ​CREATED ​  ​STATUS ​   PORTS     ​NAMES''​
  
-===== Nutzer zur Gruppe docker hinzufügen ===== +++++ podman | 
-Erspart das ''​sudo''​ vor jedem ''​docker''​. Gibt dem Benutzer ​auf indirekt root-Rechte.+Podman benötigt keinen daemon. Aber es gibt einen Socket: 
 +  systemctl status podman.socket 
 +++++ 
 +====== Nutzer zur Gruppe docker hinzufügen ​====== 
 +Erspart das ''​sudo''​ vor jedem ''​docker''​. Gibt dem Benutzer indirekt root-Rechte.
   gpasswd -a nutzer43 docker   gpasswd -a nutzer43 docker
  
 ====== lokalen Proxy / Cache verwenden ====== ====== lokalen Proxy / Cache verwenden ======
 +++++ podman |
 +<file toml /​etc/​containers/​registries.conf.d/​10-local-docker-io-proxy.conf>​
 +[[registry]]
 +prefix = "​docker.io"​
 +location = "​docker-registry.guest.linuxhotel.de"​
 +insecure = true
 +</​file>​
 +Testen, ob Images wirklich vom lokale Proxy geladen werden: ​
 +  podman info --format json | jq '​.registries."​docker.io"'​
 +(( alternativ:
 +  podman info --format '​{{(index .Registries "​docker.io"​).Location}}'​
 +))
 +  podman image rm ubuntu
 +  podman pull --log-level=debug ubuntu
 +++++
 +
 <file json /​etc/​docker/​daemon.json>​ <file json /​etc/​docker/​daemon.json>​
 { {
Zeile 45: Zeile 68:
  
 </​file>​ </​file>​
 +
 +Cloud VM:
 +
 +<file json /​etc/​docker/​daemon.json>​
 +{
 +  "​registry-mirrors":​ ["​https://​registry.lab.linuxhotel.de/​nb72bnerqxlnfahdeqsfzhwjjyiqmsoz"​]
 +}
 +</​file>​
 +
 +  systemctl restart docker.service
 +
 +===== Prüfen, ob tatsächlich der Proxy verwendet wird: =====
 +  docker image rm ubuntu
 +  docker image pull ubuntu
 +
 +  journalctl -eu docker
 +
  
 ====== Logs zu Systemd-Journald umleiten ====== ====== Logs zu Systemd-Journald umleiten ======
 +Wo werden Logs gespeichert?​
   docker info --format '​{{.LoggingDriver}}'​   docker info --format '​{{.LoggingDriver}}'​
--> ''​json-file''​ (( https://​docs.docker.com/​engine/​logging/​drivers/​json-file/ ​"By default, no log-rotation is performed. As a result, log-files stored by the default json-file logging driver can cause a significant amount of disk space to be used for containers that generate much output, which can lead to disk space exhaustion. +-> ''​json-file''​ (( "By default, no log-rotation is performed. As a result, log-files stored by the default json-file logging driver can cause a significant amount of disk space to be used for containers that generate much output, which can lead to disk space exhaustion. 
-Docker keeps the json-file logging driver (without log-rotation) as a default to remain backwards compatible with older versions of Docker, and for situations where Docker is used as runtime for Kubernetes."​ )) +Docker keeps the json-file logging driver (without log-rotation) as a default to remain backwards compatible with older versions of Docker, and for situations where Docker is used as runtime for Kubernetes." ​https://​docs.docker.com/​engine/​logging/​configure/ ​)) 
-  ​+ 
 +++++ podman | 
 +  ​podman info --format '​{{.Host.LogDriver}}'​ 
 +-> ''​journald''​ ist default 
 +++++ 
 + 
 +Container starten, der viele Logmeldungen produziert:​ 
 +  docker run -d --name log-filler alpine sh -c "while true; do seq -w 000000 999999; done"​ 
 + 
 +Logs (für ein paar Sekunden) ansehen 
 +  docker container logs -f log-filler 
 + 
 +Wachstum der Logs (für ein paar Sekunden) beobachten:​ 
 +  watch -d du -h /​var/​lib/​docker/​containers/​*/​*-json.log 
 + 
 +log-filler container wegwerfen:​ 
 +  docker container rm -f log-filler 
 + 
admin_grundlagen/docker/installation.1777835662.txt.gz · Zuletzt geändert: 2026/05/03 19:14 von ingo_wichmann