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/01/25 14:03]
ingo_wichmann [Debian (ab 12)]
admin_grundlagen:docker:installation [2026/06/01 08:08] (aktuell)
ingo_wichmann [lokalen Proxy / Cache verwenden]
Zeile 3: Zeile 3:
 ==== Debian (ab 12) ==== ==== Debian (ab 12) ====
 Docker Repository hinzufügen:​ Docker Repository hinzufügen:​
-  apt install extrepo+  apt install ​-y extrepo
   extrepo search docker   extrepo search docker
 +-> ''​Found docker-ce:''​
   extrepo enable docker-ce   extrepo enable docker-ce
 +-> legt an: ''/​etc/​apt/​sources.list.d/​extrepo_docker-ce.sources''​
   apt update   apt update
 Pakete installieren:​ Pakete installieren:​
-  apt install docker-ce docker-ce-cli ​containerd.io ​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 18: 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
  
-Test: läuft der Docker Service?+Docker Installation testen: 
 +  docker version 
 +  docker system info 
 + 
 +läuft der Docker Service?
   systemctl status docker.service   systemctl status docker.service
   docker ps   docker ps
 -> ''​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
  
-====== ​Docker Installation testen ​====== +====== ​lokalen Proxy / Cache verwenden ​====== 
-  docker ​version +++++ podman | 
-  docker ​system ​info+<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 
 +++++
  
-====== Internen Cache verwenden ====== 
 <file json /​etc/​docker/​daemon.json>​ <file json /​etc/​docker/​daemon.json>​
 { {
Zeile 43: 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 ======
 +Wo werden Logs gespeichert?​
 +  docker info --format '​{{.LoggingDriver}}'​
 +-> ''​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."​ 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.1769349781.txt.gz · Zuletzt geändert: 2026/01/25 14:03 von ingo_wichmann