it-swarm.com.de

Änderungen an der httpd.conf von Apache im DOCKER-Container vornehmen und Apache neu starten

Ich bin neu im Docker. In unserer Docker-Umgebung wurde Apache installiert und ist betriebsbereit.
Jetzt muss ich in den Container gehen, den httpd.conf ändern, speichern und dann den Apache neu starten.

Können Sie bitte, lassen Sie mich wissen, was zu tun ist ... Ich bin ziemlich verwirrt über -

13
Sunag Sunagms

Kein Anhängen oder Ausführen erforderlich (was sowieso eine Debug-Funktion ist)

Sie können docker cp verwenden, um eine lokale Version Ihres httpd.conf in den Container zu kopieren. (Auf diese Weise können Sie die Datei bequem in Ihrer lokalen Umgebung ändern.)

docker cp httpd.conf <yourcontainer_name>:/path/to/httpd.conf

Sobald dies erledigt ist, können Sie ein USR1-Signal senden, um einen ordnungsgemäßen Neustart anzufordern (siehe docker kill syntax):

docker kill --signal="USR1" <yourcontainer_name>

Ersetzen Sie <yourcontainer_name> durch die Container-ID oder den Namen, unter dem Apache ausgeführt wird.

Das funktioniert nur, wenn der Hauptprozess von Ihrem Container gestartet wird 

CMD ["apachectl", "-DFOREGROUND"]

Mehr dazu unter " Docker: So starten Sie einen Dienst neu, der in Docker Container ausgeführt wird "

16
VonC

Geben Sie einen Container ein, indem Sie eine Bash-Shell öffnen:

docker exec -it containerName bash

Ich nehme an, Sie laden einfach die Apache-Konfiguration neu und starten sie nicht neu. Aber ich würde nicht auf diese Route gehen und einfach Dockerfile ändern und das Image neu erstellen und erneut ausführen.

für Link bearbeiten: https://docs.docker.com/engine/reference/commandline/exec/

1
2Fast2BCn

Um die Apache-Konfigurationen zu aktualisieren, müssen Sie:

  1. Ersetzen Sie die Apache-Konfigurationen.

    ein. Wenn Sie einen Konfigurationsordner von außerhalb des Containers zugeordnet haben, sollten Sie die Konfigurationsdateien außerhalb des Containers aktualisieren B. Wenn Ihre Apache-Konfigurationen in einem Container gespeichert sind, müssen Sie Folgendes ausführen:

    docker cp httpd.conf YOUR_CONTAINER_NAME: /path/to/httpd.conf

  2. Do Graceful Apache Neustart :

    Sudo docker exec -it YOUR_CONTAINER_NAME apachectl anmutig

0
Sergey