Heim > Backend-Entwicklung > PHP-Tutorial > Docker 容器如何使用PHP-FPM在后台一直运行

Docker 容器如何使用PHP-FPM在后台一直运行

WBOY
Freigeben: 2016-06-06 20:31:21
Original
2470 Leute haben es durchsucht

在官方的centos基础上启动了一个容器,在里面安装了PHP-FPM.
现在我想让这个容器在后台运行,由另一个容器(如NGINX服务器容器)来连接它的PHP-FPM服务
以下是我的启动参数:

<code>#test/php是镜像名称
docker -d --name php-fpm test/php /usr/sbin/php-fpm
</code>
Nach dem Login kopieren
Nach dem Login kopieren
<code>docker -d --name php-fpm test/php /usr/sbin/php-fpm -D #daemonize
</code>
Nach dem Login kopieren
Nach dem Login kopieren

容器里好像是不能通过服务启动php-fpm

<code>[root@5233bbc57e72 /]# systemctl start php-fpm
Failed to get D-Bus connection: No connection to service manager.
</code>
Nach dem Login kopieren
Nach dem Login kopieren

于是安装个supervisor试试

<code>#/etc/supervisord.conf
[supervisord]
logfile=/var/log/supervisor/supervisord.log  ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=true               ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)
;umask=022                  ; (process file creation umask;default 022)
;user=chrism                 ; (default is current user, required if root)
;identifier=supervisor       ; (supervisord identifier, default is 'supervisor')
;directory=/tmp              ; (default is not to cd during start)
;nocleanup=true 
[include]
files = supervisord.d//*.ini
[program:php-fpm]
command=/bin/bash -c "/usr/sbin/php-fpm -D"
</code>
Nach dem Login kopieren
Nach dem Login kopieren

启动

<code>docker run -d test/php /usr/bin/supervisord
</code>
Nach dem Login kopieren
Nach dem Login kopieren

如果可以容器可以维持在后台运行,但是php-fpm没有启动!
php-fpm的配置是默认的

回复内容:

在官方的centos基础上启动了一个容器,在里面安装了PHP-FPM.
现在我想让这个容器在后台运行,由另一个容器(如NGINX服务器容器)来连接它的PHP-FPM服务
以下是我的启动参数:

<code>#test/php是镜像名称
docker -d --name php-fpm test/php /usr/sbin/php-fpm
</code>
Nach dem Login kopieren
Nach dem Login kopieren
<code>docker -d --name php-fpm test/php /usr/sbin/php-fpm -D #daemonize
</code>
Nach dem Login kopieren
Nach dem Login kopieren

容器里好像是不能通过服务启动php-fpm

<code>[root@5233bbc57e72 /]# systemctl start php-fpm
Failed to get D-Bus connection: No connection to service manager.
</code>
Nach dem Login kopieren
Nach dem Login kopieren

于是安装个supervisor试试

<code>#/etc/supervisord.conf
[supervisord]
logfile=/var/log/supervisor/supervisord.log  ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=true               ; (start in foreground if true;default false)
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
minprocs=200                ; (min. avail process descriptors;default 200)
;umask=022                  ; (process file creation umask;default 022)
;user=chrism                 ; (default is current user, required if root)
;identifier=supervisor       ; (supervisord identifier, default is 'supervisor')
;directory=/tmp              ; (default is not to cd during start)
;nocleanup=true 
[include]
files = supervisord.d//*.ini
[program:php-fpm]
command=/bin/bash -c "/usr/sbin/php-fpm -D"
</code>
Nach dem Login kopieren
Nach dem Login kopieren

启动

<code>docker run -d test/php /usr/bin/supervisord
</code>
Nach dem Login kopieren
Nach dem Login kopieren

如果可以容器可以维持在后台运行,但是php-fpm没有启动!
php-fpm的配置是默认的

  1. 直接使用官方的PHP Docker 镜像。
    https://registry.hub.docker.com/_/php/
  2. 查看官方的 Docker 镜像的dockerfile 文件如何使用的。
    https://github.com/docker-library/php/blob/32887c1de338d0ad582393b5f1d...
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage