Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
admin_grundlagen:docker:build [2026/01/25 13:46] ingo_wichmann angelegt |
admin_grundlagen:docker:build [2026/03/24 10:22] (aktuell) ingo_wichmann |
||
|---|---|---|---|
| Zeile 19: | Zeile 19: | ||
| ====== Dockerfile - Docker Images weiterbauen ====== | ====== Dockerfile - Docker Images weiterbauen ====== | ||
| - | mkdir static_web | + | mkdir nginx |
| - | cd static_web | + | cd nginx |
| <file txt Dockerfile> | <file txt Dockerfile> | ||
| FROM ingo/debian:trixie | FROM ingo/debian:trixie | ||
| LABEL version="0.0.1" | LABEL version="0.0.1" | ||
| LABEL maintainer="me@example.com" | LABEL maintainer="me@example.com" | ||
| - | ENV DEBIAN_FRONTEND noninteractive | + | ENV DEBIAN_FRONTEND=noninteractive |
| - | ENV REFRESHED_AT 2026-01-07 | + | ARG REFRESHED_AT=2026-01-07 |
| RUN set -eux; \ | RUN set -eux; \ | ||
| apt-get -qq update; \ | apt-get -qq update; \ | ||
| apt-get install -y --no-install-recommends nginx | apt-get install -y --no-install-recommends nginx | ||
| - | RUN find / -xdev -user root -type f -perm /u+s -exec chmod u-s {} + | ||
| RUN echo 'A warm welcome from your Dockerfile' > /var/www/html/index.html | RUN echo 'A warm welcome from your Dockerfile' > /var/www/html/index.html | ||
| EXPOSE 80 | EXPOSE 80 | ||
| ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"] | ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"] | ||
| - | </file> | + | </file> (( https://docs.docker.com/reference/dockerfile/ )) |
| - | docker build -t='ingo/static_web:0.0.1' . | + | |
| - | docker image ls | + | |
| - | docker container run -d -p 80:80 --name my_static_web ingo/static_web | + | |
| - | curl -s http://localhost:80 | + | |
| - | ===== ENTRYPOINT / CMD / run-Command ===== | + | ++++ ENTRYPOINT / CMD / run-Command | |
| ^ ''ENTRYPOINT'' ^ ''CMD'' ^ run-Command ^ ausgeführt wird ^ | ^ ''ENTRYPOINT'' ^ ''CMD'' ^ run-Command ^ ausgeführt wird ^ | ||
| |<code>["script.sh"]</code>| | | <code>script.sh</code> | | |<code>["script.sh"]</code>| | | <code>script.sh</code> | | ||
| Zeile 48: | Zeile 43: | ||
| | | <code>["/bin/sh"]</code> | | <code>/bin/sh</code> | | | | <code>["/bin/sh"]</code> | | <code>/bin/sh</code> | | ||
| | | <code>["/bin/sh"]</code> | <code>/bin/dash</code> | <code>/bin/dash</code> | | | | <code>["/bin/sh"]</code> | <code>/bin/dash</code> | <code>/bin/dash</code> | | ||
| - | | | | | <code>/bin/bash</code>((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.)) | | + | | | | | <code>/bin/bash</code> (( 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.)) | |
| + | ++++ | ||
| + | docker build -t='ingo/nginx:0.0.1' . | ||
| + | docker image ls ingo/nginx:0.0.1 | ||
| + | -> id rauskopieren (z.B. ''5879d7773761'') | ||
| + | docker image tag 5879d7773761 ingo/nginx:latest | ||
| + | docker container run -d -p 80:80 --name my_nginx ingo/nginx | ||
| + | curl -s http://localhost:80 | ||
| + | -> im Browser http://localhost öffnen | ||
| + | |||
| + | ====== Docker Image aktualisieren ====== | ||
| + | <file txt Dockerfile> | ||
| + | … | ||
| + | RUN ln -sf /dev/stdout /var/log/nginx/access.log \ | ||
| + | && ln -sf /dev/stderr /var/log/nginx/error.log | ||
| + | … | ||
| + | </file> | ||
| + | docker build --no-cache --pull -t='ingo/nginx:0.0.2' . | ||
| + | Jetzt noch mal testen und | ||
| + | docker logs | ||
| + | ansehen. | ||