[小ネタ]Dockerのnginxコンテナ内で設定更新する
背景
docker-compose でローカル開発している中で、nginxの設定(nginx.conf)を変更した後にコンテナ内部で
コンテナ内部
service nginx restart
したらコンテナが終了してしまった。
結論
コンテナ内部
service nginx reload
コンテナ内部
service nginx reload
で対応すると終了しない。restart だとnginxのプロセスが終わるので処理が終わったとみなされるという事かな。
もちろんDockerコンテナ再起動するのが王道。
ホスト
# 最後のnginxはコンテナ名でなく、サービス名
docker-compsose restart nginx
でも細かくいろいろやりたい時とかにコンテナ再起動までしたくないケースで使えるかと。
再現テスト
docker-compose.yml
version: '3.7'
services:
nginx:
image: nginx
restart: always
ports:
- 8880:80
container_name: nginx-test
起動
sudo docker-compose up
コンテナログイン
sudo docker exec -it nginx-test bash
コンテナ内部
service nginx restart
docker-compose.yml
version: '3.7'
services:
nginx:
image: nginx
restart: always
ports:
- 8880:80
container_name: nginx-test
起動
sudo docker-compose up
コンテナログイン
sudo docker exec -it nginx-test bash
コンテナ内部
service nginx restart
上記docker-compose.ymlではrestartつけてるのですぐ起動しますが、一旦は終了してコンテナからはログアウトされます。再度コンテナログインが必要です。
コンテナ内部
service nginx reload
今度はコンテナ終了しません。
Author And Source
この問題について([小ネタ]Dockerのnginxコンテナ内で設定更新する), 我々は、より多くの情報をここで見つけました https://qiita.com/etnk/items/33c41c5f5058f5df807d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .