web-dev-qa-db-ja.com

Dockerコンテナ内でphp-fpmを再起動する方法は?

私はドッカーを使用しており、私のコンテナは php official repo からのphp:5.6-fpmイメージ上に構築されています。コンテナ内からphp-fpmを再起動/再ロードすることはどういうわけですか?

20
Eugene Sue

php-fpmは、設定ファイルをリロードするために使用されるUSER2シグナルをサポートするプロセスマネージャーです。

コンテナ内から:

kill -USR2 1

外側:

docker exec -it <mycontainer> kill -USR2 1

完全な例:

docker run -d --name test123 php:7.1-fpm-Alpine
docker exec -it test123 ps aux
docker exec -it test123 kill -USR2 1
docker exec -it test123 ps aux
29
Enrico Stahn

これは私のために働く:

コマンドfpm restartが失敗した場合、これをDockerコンテナー内で実行します-> www#:

root@...:/var/www# **ps -ef|grep fpm**  
www-data   160     1  0 10:02 ?        00:00:00 php-fpm: pool www  
www-data   161     1  0 10:02 ?        00:00:00 php-fpm: pool www  
root      1111   170  0 10:04 pts/0    00:00:00 grep --color=auto fpm  

root@...:/var/www# **kill -USR2 170**  

root@...:/home/user/Docker# **docker-compose stop**  
Stopping docker_nginx_1  ... done  
Stopping docker_Oracle_1 ... done  

root@...:/home/user/Docker# **docker-compose up -d**  
Starting docker_Oracle_1 ... done  
Starting docker_nginx_1  ... done  

root@...:/home/user/Docker# **docker-compose exec Oracle bash**

root@...:/var/www# **/etc/init.d/php7.2-fpm restart**  
 * Restarting PHP 7.2 FastCGI Process Manager php-fpm7.2                                          **[ OK ]** 
1
user2652810

コンテナを再起動することもできます。

Sudo docker <container> restart
1
Fractalf

コンテナの中に入る必要はありません

ホストps -ef|grep fpm // find master pid kill -USR2 <master_pid>

0
too