admin_grundlagen:docker:docker_service_selbst_bauen
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Image aus Dockerfile bauen
mkdir nginx cd nginx
- Dockerfile
FROM ingo/debian:trixie RUN mkdir -p /var/www/html ARG REFRESHED_AT=1970-01-01 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; \ apt-get -qq update; \ apt-get install -y --no-install-recommends nginx EXPOSE 80 ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"] LABEL version="0.0.1" LABEL maintainer="me@example.com" LABEL org.opencontainers.image.authors="me@example.com" LABEL org.opencontainers.image.created=$REFRESHED_AT
ENTRYPOINT / CMD / run-Command
Image mit den Erweiterungen aus dem Dockerfile bauen: 3)
docker build -t='ingo/nginx:0.0.1' .
Image anzeigen:
docker image ls ingo/nginx:0.0.1
→ id rauskopieren (z.B. 5879d7773761)
Image taggen:
docker image tag 5879d7773761 ingo/nginx:latest
Container starten:
docker container run --rm -d -p 80:80 --name my_nginx ingo/nginx
Zugriff auf nginx testen:
curl -s http://localhost:80
oder im Browser http://localhost öffnen
Image aktualisieren
Wiederverwendung der Layer
docker build -t='ingo/nginx:0.0.1' .
→ CACHED oder Using cache … → Layer wird nicht aktualisiert
docker image inspect ingo/nginx:0.0.1 | jq -r '.[0].Config.Labels."org.opencontainers.image.created"'
→ gibt aus: 1970-01-01
Cache abschalten
docker build --no-cache -t='ingo/nginx:0.0.1' .
Bauen mit einem Release Zeitstempel
REFRESHED_AT=$(date '+%Y-%m-%d') docker build --build-arg "REFRESHED_AT=$REFRESHED_AT" -t='ingo/nginx:0.0.1' .
→ alle Layer ab ARG REFRESHED_AT=1970-01-01 werden aktualisiert
Prüfen, ob der Zeitstempel aktuell ist:
docker image inspect ingo/nginx:0.0.1 | jq -r '.[0].Config.Labels."org.opencontainers.image.created"'
→ gibt aktuelles Datum aus
Logging hinzufügen
docker logs my_nginx
→ keine Logs
- Dockerfile
… RUN set -eux; \ ln -sf /dev/stdout /var/log/nginx/access.log; \ ln -sf /dev/stderr /var/log/nginx/error.log; …
docker build --no-cache -t='ingo/nginx:0.0.2' .
Jetzt noch mal Container starten und
curl -s http://localhost:80 docker logs my_nginx
ansehen.
Health Status hinzufügen
- Dockerfile
… #RUN apt-get install -y --no-install-recommends curl; HEALTHCHECK --interval=10s --timeout=3s \ CMD curl -sf http://localhost/ || exit 1 …
Container neu bauen und starten und Health Status prüfen:
watch "docker inspect my_nginx | jq '.[].State.Health'"
und
watch docker container ps
2)
https://docs.docker.com/reference/dockerfile/#understand-how-cmd-and-entrypoint-interact sagt
error, not allowed. Docker Version 20.10.24+dfsg1 hat bash ausgeführt.3)
falls
apt update Spiegelserver im Linuxhotel-Netz nicht findet:docker build --dns 192.168.1.5 -t='ingo/nginx:0.0.1' .
admin_grundlagen/docker/docker_service_selbst_bauen.1791582851.txt.gz · Zuletzt geändert: 2026/10/09 21:54 von ingo_wichmann
