Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
admin_grundlagen:docker:apache_httpd_mit_docker [2026/05/08 15:03] ingo_wichmann [mit Dockerfile] |
admin_grundlagen:docker:apache_httpd_mit_docker [2026/06/02 09:39] (aktuell) peter_rossbach2 |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Apache httpd von Docker ====== | ====== Apache httpd von Docker ====== | ||
| siehe https://hub.docker.com/_/httpd | siehe https://hub.docker.com/_/httpd | ||
| - | |||
| - | ==== Hinweis für Podman ==== | ||
| - | |||
| - | Für podmand ''docker'' durch ''podman'' ersetzen und alle Images ggf. mit ''docker.io/'' prefixen. | ||
| ===== persistente Daten für den Container anlegen ===== | ===== persistente Daten für den Container anlegen ===== | ||
| + | ++++ Podman | | ||
| + | Wenn SELinux aktiv ist, vielleicht ''/var/lib/containers'' anstelle von ''/srv/docker'' verwenden. Da sind die passenden Berechtigungen bereits gesetzt. | ||
| + | ++++ | ||
| mkdir -p /srv/docker/httpd/htdocs | mkdir -p /srv/docker/httpd/htdocs | ||
| cd /srv/docker/httpd | cd /srv/docker/httpd | ||
| Zeile 20: | Zeile 19: | ||
| </code> | </code> | ||
| ===== erster Start ===== | ===== erster Start ===== | ||
| - | docker run -d --name hello-httpd -p 8888:80 -v '/srv/docker/httpd/htdocs:/usr/local/apache2/htdocs/' httpd:2.4 | + | ++++ podman | |
| + | Wenn SELinux aktiv ist '':Z'' hinzufügen. Das veranlasst Podman, das Volume mit einem privaten SELinux-Kontext zu relabeln, wodurch der Container Zugriff darauf erhält. | ||
| + | podman run -d --name hello-httpd -p 8888:80 -v '/srv/docker/httpd/htdocs:/usr/local/apache2/htdocs/:Z' httpd:2.4 | ||
| + | ++++ | ||
| + | docker container run -d --name hello-httpd -p 8888:80 -v '/srv/docker/httpd/htdocs:/usr/local/apache2/htdocs/' httpd:2.4 | ||
| -> http://localhost:8888 | -> http://localhost:8888 | ||
| curl http://localhost:8888 | curl http://localhost:8888 | ||
| Zeile 27: | Zeile 30: | ||
| )) | )) | ||
| docker container inspect -f '{{.Config.WorkingDir}}' hello-httpd | docker container inspect -f '{{.Config.WorkingDir}}' hello-httpd | ||
| - | Betreten der Instanz: | + | |
| - | docker exec -it hello-httpd /bin/bash | + | Mounts herausfinden: |
| + | docker container inspect -f '{{ json .Mounts }}' hello-httpd | jq | ||
| + | |||
| + | Betreten des Containers: | ||
| + | docker container exec -it hello-httpd /bin/bash | ||
| ls conf/httpd.conf | ls conf/httpd.conf | ||
| exit | exit | ||
| - | Instanz löschen: | + | Container löschen: |
| - | docker stop hello-httpd | + | docker container rm -f hello-httpd |
| - | docker rm hello-httpd | + | |
| ===== Start mit eigener Konfigurationsdatei ===== | ===== Start mit eigener Konfigurationsdatei ===== | ||
| Zeile 39: | Zeile 45: | ||
| Extrahieren der Konfigurationsdatei: | Extrahieren der Konfigurationsdatei: | ||
| cd /srv/docker/httpd | cd /srv/docker/httpd | ||
| - | docker run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > httpd.conf | + | docker container run --rm httpd:2.4 cat /usr/local/apache2/conf/httpd.conf > httpd.conf |
| Konfigurationsdatei bearbeiten: | Konfigurationsdatei bearbeiten: | ||
| sed -i.bak 's/^Listen 80/Listen 8001/' httpd.conf | sed -i.bak 's/^Listen 80/Listen 8001/' httpd.conf | ||
| diff httpd.conf{,.bak} | diff httpd.conf{,.bak} | ||
| Starten: | Starten: | ||
| - | docker run -d --name httpd_8001 -p 8888:8001 -v '/srv/docker/httpd/htdocs:/usr/local/apache2/htdocs/' -v '/srv/docker/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf' httpd:2.4 | + | docker container run -d --name httpd_8001 -p 8888:8001 -v '/srv/docker/httpd/htdocs:/usr/local/apache2/htdocs/' -v '/srv/docker/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf' httpd:2.4 |
| -> http://localhost:8888 | -> http://localhost:8888 | ||
| - | Löschen: | + | Container löschen: |
| - | docker stop httpd_8001 | + | docker container rm -f httpd_8001 |
| - | docker rm httpd_8001 | + | |
| ==== mit Dockerfile ==== | ==== mit Dockerfile ==== | ||
| <code Dockerfile Dockerfile> | <code Dockerfile Dockerfile> | ||
| Zeile 58: | Zeile 63: | ||
| docker build -t='ingo/apache:0.0.1' . | docker build -t='ingo/apache:0.0.1' . | ||
| docker container run -d -P ingo/apache:0.0.1 | docker container run -d -P ingo/apache:0.0.1 | ||
| - | docker container ps | + | docker container ls |
| -> ''->8001/tcp'' | -> ''->8001/tcp'' | ||
| Zeile 87: | Zeile 92: | ||
| docker build -t='ingo/apache:0.0.1' . | docker build -t='ingo/apache:0.0.1' . | ||
| docker container run -d -P ingo/apache:0.0.1 | docker container run -d -P ingo/apache:0.0.1 | ||
| - | docker container ps | + | docker container ls |
| -> ''->8001/tcp'' | -> ''->8001/tcp'' | ||
| ++++ | ++++ | ||