web-dev-qa-db-ja.com

DOCKERコンテナー内で実行されているApacheのhttpd.confを変更し、Apacheを再起動する方法

ドッカーは初めてです。 Docker環境では、Apacheがインストールされ、稼働しています。
今、コンテナに入る必要があるので、httpd.conf、保存して、Apacheを再起動する必要があります。

みなさん、何をする必要があるのか​​教えてください。 「exec」コマンドと「attach」コマンドについてはかなり混乱しています。

15
Sunag Sunagms

接続または実行する必要はありません(これはとにかくデバッグ機能です)

docker cp ローカルバージョンのコピーhttpd.confコンテナに。 (そのようにして、ローカル環境の快適さからファイルを変更できます)

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

それが完了したら、USR1シグナルを送信してグレースフルリスタートを要求できます( docker kill 構文):

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

置換<yourcontainer_name>は、Apacheを実行しているコンテナIDまたは名前です。

コンテナによって起動されたメインプロセスが

CMD ["apachectl", "-DFOREGROUND"]

詳細については、「 Docker:Docker Containerで実行されているサービスを再起動する方法

18
VonC

Bashシェルを開いてコンテナに入ります:

docker exec -it containerName bash

Apacheを再起動するのではなく、Apacheの設定をリロードする方が良いと思います。ただし、この方法ではなく、Dockerfileを変更し、イメージを再構築して再実行します。

リンクの編集: https://docs.docker.com/engine/reference/commandline/exec/

2
2Fast2BCn

Apacheの設定を更新するには、次を行う必要があります。

  1. Apacheの構成を置き換えます。

    a。コンテナーの外部から構成フォルダーがマップされている場合は、コンテナーの外部で構成を更新する必要があります。 b。 Apacheの設定がコンテナ内に保存されている場合、次のようなものを実行する必要があります。

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

  2. Apacheのグレースフルリスタート

    Sudo docker exec -it YOUR_CONTAINER_NAME apachectl graceful

1
Sergey