Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
admin_grundlagen:docker:docker_service_selbst_bauen [2026/10/09 20:55] ingo_wichmann angelegt |
admin_grundlagen:docker:docker_service_selbst_bauen [2026/10/09 21:54] (aktuell) ingo_wichmann |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== Docker Image selbst bauen ====== | ||
| - | ===== Pakete ===== | ||
| - | === Rocky Linux (10): === | ||
| - | dnf config-manager --enable crb | ||
| - | dnf install -y epel-release | ||
| - | dnf install -y debootstrap | ||
| - | === Debian (ab 12) === | ||
| - | apt install -y debootstrap | ||
| - | |||
| - | ===== Image aus tar-Archiv bauen ===== | ||
| - | (( anders als das Image aus https://hub.docker.com/_/debian ist dieses Image nicht reproduzierbar )) | ||
| - | sudo debootstrap --variant=minbase trixie ./debian http://deb.debian.org/debian | ||
| - | (( im Linuxhotel-Netzwerk lokalen Spiegelserver benutzen: | ||
| - | sudo debootstrap --variant=minbase trixie ./debian http://debian/debian | ||
| - | )) | ||
| - | (( unter RockyLinux ''--keyring'' ergänzen: | ||
| - | sudo debootstrap --variant=minbase --keyring=/usr/share/keyrings/debian-archive-trixie-stable.gpg trixie ./debian http://debian.linuxhotel.de/debian | ||
| - | )) | ||
| - | sudo tar cC debian/ . | docker image import - ingo/debian:trixie | ||
| - | Tag ''latest'' hinzufügen: | ||
| - | docker image ls ingo/debian:trixie | ||
| - | -> id rauskopieren (z.B. ''dc9f1edde160'') | ||
| - | docker image tag dc9f1edde160 ingo/debian:latest | ||
| - | |||
| - | ==== testen ==== | ||
| - | docker container run --rm ingo/debian apt update | ||
| - | -> Ausgabe von ''apt update'' ok? | ||
| - | |||
| - | (( Wenn nicht: | ||
| - | docker container run --rm ingo/debian cat /etc/resolv.conf | ||
| - | -> Nameserver kommt von Docker, nicht aus dem Image | ||
| - | |||
| - | Ändern mit: | ||
| - | docker container run --rm --dns 192.168.1.5 ingo/debian:local cat /etc/resolv.conf | ||
| - | docker container run --rm --dns 192.168.1.5 ingo/debian:local apt update | ||
| - | )) | ||
| ===== Image aus Dockerfile bauen ===== | ===== Image aus Dockerfile bauen ===== | ||
| mkdir nginx | mkdir nginx | ||
| Zeile 43: | Zeile 7: | ||
| <file txt Dockerfile> | <file txt Dockerfile> | ||
| FROM ingo/debian:trixie | FROM ingo/debian:trixie | ||
| - | RUN set -eux; \ | + | RUN mkdir -p /var/www/html |
| - | mkdir -p /var/www/html; \ | + | |
| - | echo 'A warm welcome from your Dockerfile' > /var/www/html/index.html | + | |
| ARG REFRESHED_AT=1970-01-01 | ARG REFRESHED_AT=1970-01-01 | ||
| - | ENV DEBIAN_FRONTEND=noninteractive | + | COPY <<EOF /var/www/html/index.html |
| + | Greetings from your Dockerfile refreshed at $REFRESHED_AT | ||
| + | EOF | ||
| + | ENV easteregg='this image does not contain eastereggs' | ||
| + | ARG DEBIAN_FRONTEND=noninteractive | ||
| RUN set -eux; \ | RUN set -eux; \ | ||
| apt-get -qq update; \ | apt-get -qq update; \ | ||
| Zeile 105: | Zeile 71: | ||
| docker image inspect ingo/nginx:0.0.1 | jq -r '.[0].Config.Labels."org.opencontainers.image.created"' | docker image inspect ingo/nginx:0.0.1 | jq -r '.[0].Config.Labels."org.opencontainers.image.created"' | ||
| -> gibt aktuelles Datum aus | -> gibt aktuelles Datum aus | ||
| - | |||
| ===== Logging hinzufügen ===== | ===== Logging hinzufügen ===== | ||
| Zeile 128: | Zeile 93: | ||
| <file txt Dockerfile> | <file txt Dockerfile> | ||
| … | … | ||
| - | #RUN set -eux; \ | + | #RUN apt-get install -y --no-install-recommends curl; |
| - | # apt-get install -y --no-install-recommends curl; | + | |
| HEALTHCHECK --interval=10s --timeout=3s \ | HEALTHCHECK --interval=10s --timeout=3s \ | ||
| CMD curl -sf http://localhost/ || exit 1 | CMD curl -sf http://localhost/ || exit 1 | ||