11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[小ネタ]Dockerのnginxコンテナ内で設定更新する

Last updated at Posted at 2021-01-28

背景

docker-compose でローカル開発している中で、nginxの設定(nginx.conf)を変更した後にコンテナ内部で

コンテナ内部
service nginx restart

したらコンテナが終了してしまった。

結論

コンテナ内部
service nginx reload

で対応すると終了しない。restart だとnginxのプロセスが終わるので処理が終わったとみなされるという事かな。
もちろんDockerコンテナ再起動するのが王道。

ホスト
# 最後のnginxはコンテナ名でなく、サービス名
docker-compose 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ではrestartつけてるのですぐ起動しますが、一旦は終了してコンテナからはログアウトされます。再度コンテナログインが必要です。

コンテナ内部
service nginx reload

今度はコンテナ終了しません。

11
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?