Как перезапустить php-fpm внутри контейнера докеров?

Я использую докер, и мой контейнер построен поверх php: 5.6-fpm изображение из официальное репо php. Как можно перезагрузить/перезагрузить php-fpm из контейнера?

Ответ 1

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

Ответ 2

Вы также можете просто перезапустить контейнер..

sudo docker <container> restart

Ответ 3

Это работает для меня:

Если команда fpm restart не удалась, запустите ее в контейнере Docker → www #:

[email protected]:/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  

[email protected]:/var/www# **kill -USR2 170**  

[email protected]:/home/user/Docker# **docker-compose stop**  
Stopping docker_nginx_1  ... done  
Stopping docker_oracle_1 ... done  

[email protected]:/home/user/Docker# **docker-compose up -d**  
Starting docker_oracle_1 ... done  
Starting docker_nginx_1  ... done  

[email protected]:/home/user/Docker# **docker-compose exec oracle bash**

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

Ответ 4

Вам не нужно идти внутрь контейнера

на вашем хосте ps -ef|grep fpm//find master pid kill -USR2 <master_pid>