admin_grundlagen:docker:docker_service_selbst_bauen
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
| admin_grundlagen:docker:docker_service_selbst_bauen [2026/10/09 20:55] – angelegt ingo_wichmann | admin_grundlagen:docker:docker_service_selbst_bauen [2026/10/17 07:51] (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:// | ||
| - | sudo debootstrap --variant=minbase trixie ./debian http:// | ||
| - | (( im Linuxhotel-Netzwerk lokalen Spiegelserver benutzen: | ||
| - | sudo debootstrap --variant=minbase trixie ./debian http:// | ||
| - | )) | ||
| - | (( unter RockyLinux '' | ||
| - | sudo debootstrap --variant=minbase --keyring=/ | ||
| - | )) | ||
| - | sudo tar cC debian/ . | docker image import - ingo/ | ||
| - | Tag '' | ||
| - | docker image ls ingo/ | ||
| - | -> id rauskopieren (z.B. '' | ||
| - | docker image tag dc9f1edde160 ingo/ | ||
| - | |||
| - | ==== testen ==== | ||
| - | docker container run --rm ingo/debian apt update | ||
| - | -> Ausgabe von '' | ||
| - | |||
| - | (( Wenn nicht: | ||
| - | docker container run --rm ingo/debian cat / | ||
| - | -> Nameserver kommt von Docker, nicht aus dem Image | ||
| - | |||
| - | Ändern mit: | ||
| - | docker container run --rm --dns 192.168.1.5 ingo/ | ||
| - | docker container run --rm --dns 192.168.1.5 ingo/ | ||
| - | )) | ||
| ===== Image aus Dockerfile bauen ===== | ===== Image aus Dockerfile bauen ===== | ||
| mkdir nginx | mkdir nginx | ||
| Zeile 43: | Zeile 7: | ||
| <file txt Dockerfile> | <file txt Dockerfile> | ||
| FROM ingo/ | FROM ingo/ | ||
| - | RUN set -eux; \ | + | RUN mkdir -p / |
| - | | + | |
| - | echo 'A warm welcome from your Dockerfile' | + | |
| ARG REFRESHED_AT=1970-01-01 | ARG REFRESHED_AT=1970-01-01 | ||
| - | ENV DEBIAN_FRONTEND=noninteractive | + | COPY <<EOF / |
| + | Greetings from your Dockerfile refreshed at $REFRESHED_AT | ||
| + | EOF | ||
| + | ENV easteregg=' | ||
| + | ARG DEBIAN_FRONTEND=noninteractive | ||
| RUN set -eux; \ | RUN set -eux; \ | ||
| apt-get -qq update; \ | apt-get -qq update; \ | ||
| Zeile 58: | Zeile 24: | ||
| LABEL org.opencontainers.image.authors=" | LABEL org.opencontainers.image.authors=" | ||
| LABEL org.opencontainers.image.created=$REFRESHED_AT | LABEL org.opencontainers.image.created=$REFRESHED_AT | ||
| - | </ | + | </ |
| ++++ ENTRYPOINT / CMD / run-Command | | ++++ ENTRYPOINT / CMD / run-Command | | ||
| ^ '' | ^ '' | ||
| Zeile 105: | Zeile 71: | ||
| docker image inspect ingo/ | docker image inspect ingo/ | ||
| -> 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; |
| - | # | + | |
| HEALTHCHECK --interval=10s --timeout=3s \ | HEALTHCHECK --interval=10s --timeout=3s \ | ||
| CMD curl -sf http:// | CMD curl -sf http:// | ||
| Zeile 135: | Zeile 99: | ||
| </ | </ | ||
| - | Container neu bauen und starten und Health Status prüfen: | + | Container neu bauen, starten und Health Status prüfen: |
| watch " | watch " | ||
| Zeile 141: | Zeile 105: | ||
| watch docker container ps | watch docker container ps | ||
| + | ===== Image sicherer gestalten ===== | ||
| + | * SUID entfernen: '' | ||
| + | * '' | ||
| + | * … | ||
admin_grundlagen/docker/docker_service_selbst_bauen.1791579321.txt.gz · Zuletzt geändert: 2026/10/09 20:55 von ingo_wichmann
