Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:docker:docker_service_selbst_bauen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:docker:docker_service_selbst_bauen [2026/10/09 20:55] – angelegt ingo_wichmannadmin_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://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 58: Zeile 24:
 LABEL org.opencontainers.image.authors="me@example.com" LABEL org.opencontainers.image.authors="me@example.com"
 LABEL org.opencontainers.image.created=$REFRESHED_AT LABEL org.opencontainers.image.created=$REFRESHED_AT
-</file> (( https://docs.docker.com/reference/dockerfile/ ))+</file> (( Syntax siehe https://docs.docker.com/reference/dockerfile/ ))
 ++++ ENTRYPOINT / CMD / run-Command | ++++ ENTRYPOINT / CMD / run-Command |
 ^ ''ENTRYPOINT'' ^ ''CMD'' ^ run-Command ^ ausgeführt wird ^ ^ ''ENTRYPOINT'' ^ ''CMD'' ^ run-Command ^ ausgeführt wird ^
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
Zeile 135: Zeile 99:
 </file> </file>
  
-Container neu bauen und starten und Health Status prüfen:+Container neu bauen, starten und Health Status prüfen:
  
   watch "docker inspect my_nginx | jq '.[].State.Health'"   watch "docker inspect my_nginx | jq '.[].State.Health'"
Zeile 141: Zeile 105:
   watch docker container ps   watch docker container ps
  
 +===== Image sicherer gestalten =====
 +  * SUID entfernen: ''find / -xdev -user root -type f -perm /u+s -exec chmod u-s {} +''
 +  * ''USER'' statt root verwenden
 +  * …
admin_grundlagen/docker/docker_service_selbst_bauen.1791579321.txt.gz · Zuletzt geändert: 2026/10/09 20:55 von ingo_wichmann