Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:docker:installation

Dies ist eine alte Version des Dokuments!


Docker Installation

Pakete

Debian (ab 12)

Docker Repository hinzufügen:

apt install -y extrepo
extrepo search docker

→ Found docker-ce:

extrepo enable docker-ce

→ legt an: /etc/apt/sources.list.d/extrepo_docker-ce.sources

apt update

Pakete installieren:

apt install docker-ce containerd.io docker-ce-cli docker-compose-plugin docker-buildx-plugin

++++ Alternativ: Docker Packet von Debian |

apt install docker.io docker-cli docker-compose

++++

Rocky Linux (9)

Docker Repository hinzufügen:

dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Pakete installieren:

dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin

++++ Podman |

dnf install podman

++++

Docker Service aktivieren

systemctl --now enable docker

Docker Installation testen:

docker version
docker system info

läuft der Docker Service?

systemctl status docker.service
docker ps

→ CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

++++ podman | 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

lokalen Proxy / Cache verwenden

++++ podman |

/etc/containers/registries.conf.d/10-local-docker-io-proxy.conf
[[registry]]
prefix = "docker.io"
location = "docker-registry.guest.linuxhotel.de"
insecure = true

Testen, ob Images wirklich vom lokale Proxy geladen werden:

podman info --format json | jq '.registries."docker.io"'

1)

podman image rm ubuntu
podman pull --log-level=debug ubuntu

++++

/etc/docker/daemon.json
{
   "registry-mirrors": ["http://docker-registry.guest.linuxhotel.de"],
   "insecure-registries": ["docker-registry.guest.linuxhotel.de"]
} 

Cloud VM:

/etc/docker/daemon.json
{
  "registry-mirrors": ["https://registry.lab.linuxhotel.de/Nb72bNErqXLNFAHdeQsFzhwjJYiQMsoZ"]
}
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 2)

++++ 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
1)
alternativ:
podman info --format '{{(index .Registries "docker.io").Location}}'
2)
„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/
admin_grundlagen/docker/installation.1780300876.txt.gz · Zuletzt geändert: (Externe Bearbeitung)