admin_grundlagen:docker:build
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
| Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
| admin_grundlagen:docker:build [2026/05/30 15:38] – [Dockerfile - Docker Images weiterbauen] ingo_wichmann | admin_grundlagen:docker:build [2026/10/09 20:58] (aktuell) – ingo_wichmann | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== | + | ====== Docker Image selbst bauen ====== |
| ===== Pakete ===== | ===== Pakete ===== | ||
| === Rocky Linux (10): === | === Rocky Linux (10): === | ||
| Zeile 8: | Zeile 8: | ||
| apt install -y debootstrap | apt install -y debootstrap | ||
| - | ===== Image bauen ===== | + | ===== Image aus tar-Archiv |
| (( anders als das Image aus https:// | (( 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:// | sudo debootstrap --variant=minbase trixie ./debian http:// | ||
| + | )) | ||
| (( unter RockyLinux '' | (( unter RockyLinux '' | ||
| sudo debootstrap --variant=minbase --keyring=/ | sudo debootstrap --variant=minbase --keyring=/ | ||
| Zeile 21: | Zeile 24: | ||
| ==== testen ==== | ==== testen ==== | ||
| - | docker container run ingo/ | + | docker container run --rm ingo/ |
| - | -> '' | + | -> Ausgabe von '' |
| - | ====== Dockerfile - Docker Images weiterbauen ====== | + | |
| - | mkdir nginx | + | |
| - | cd nginx | + | |
| - | ++++ podman | | + | |
| - | bei Podman darf die Datei auch '' | + | |
| - | ++++ | + | |
| - | <file txt Dockerfile> | + | |
| - | FROM ingo/ | + | |
| - | ENV DEBIAN_FRONTEND=noninteractive | + | (( Wenn nicht: |
| - | RUN set -eux; \ | + | docker container run --rm ingo/debian cat /etc/resolv.conf |
| - | apt-get -qq update; \ | + | -> Nameserver kommt von Docker, nicht aus dem Image |
| - | apt-get install -y --no-install-recommends nginx | + | |
| - | RUN echo 'A warm welcome from your Dockerfile' | + | |
| - | EXPOSE 80 | + | |
| - | ENTRYPOINT ["/ | + | |
| - | + | ||
| - | ARG REFRESHED_AT=2026-01-07 | + | |
| - | LABEL version=" | + | |
| - | LABEL maintainer=" | + | |
| - | LABEL org.opencontainers.image.authors=" | + | |
| - | LABEL org.opencontainers.image.created=$REFRESHED_AT | + | |
| - | </ | + | |
| - | ++++ ENTRYPOINT / CMD / run-Command | | + | |
| - | ^ '' | + | |
| - | |< | + | |
| - | |< | + | |
| - | |< | + | |
| - | |< | + | |
| - | | | < | + | |
| - | | | < | + | |
| - | | | | | < | + | |
| - | ++++ | + | |
| - | Image mit den Erweiterungen aus dem '' | + | |
| - | docker build -t=' | + | |
| - | Image anzeigen: | + | |
| - | docker image ls ingo/ | + | |
| - | -> id rauskopieren (z.B. '' | + | |
| - | Image taggen: | + | |
| - | docker image tag 5879d7773761 ingo/ | + | |
| - | Container starten: | + | |
| - | docker container run -d -p 80:80 --name my_nginx | + | |
| - | Zugriff auf nginx testen: | + | |
| - | curl -s http:// | + | |
| - | -> im Browser http:// | + | |
| - | + | ||
| - | ====== Docker Image aktualisieren ====== | + | |
| - | <file txt Dockerfile> | + | |
| - | … | + | |
| - | RUN ln -sf /dev/stdout /var/log/nginx/access.log \ | + | |
| - | && | + | |
| - | … | + | |
| - | </file> | + | |
| - | + | ||
| - | docker build --no-cache --pull -t=' | + | |
| - | + | ||
| - | ++++ podman | | + | |
| - | podman build --no-cache -t=' | + | |
| - | -> allerdings werden dann alle 12 STEPs neu gebaut. | + | |
| - | + | ||
| - | TODO: liegt das an dem fehlenden --pull? | + | |
| - | AI Slop Vermutung: | + | |
| - | Docker | + | |
| - | When you use the --pull flag, Podman is forced to try downloading a fresh version of that base image from an external source. Because it sees localhost/ | + | |
| - | + | ||
| - | Unter Debian mit Docker version 26.1.5+dfsg1, | + | |
| - | ERROR: failed to solve: ingo/ | + | |
| - | ++++ | + | |
| - | + | ||
| - | Jetzt noch mal Container starten und | + | |
| - | docker logs | + | |
| - | ansehen. | + | |
| - | + | ||
| - | Bauen mit einem Release Zeitstempel: | + | |
| - | + | ||
| - | <code shell> | + | |
| - | REFRESHED_AT=$(date ' | + | |
| - | docker build --no-cache --pull \ | + | |
| - | --build-arg REFRESHED_AT=$REFRESHED_AT \ | + | |
| - | -t=' | + | |
| - | -t=ingo/ | + | |
| - | </ | + | |
| + | Ändern mit: | ||
| + | docker container run --rm --dns 192.168.1.5 ingo/ | ||
| + | docker container run --rm --dns 192.168.1.5 ingo/ | ||
| + | )) | ||
admin_grundlagen/docker/build.1780155501.txt.gz · Zuletzt geändert: 2026/05/30 15:38 von ingo_wichmann
