我使用带有标签的php docker容器作为基础:
php:5.6-apache
当我尝试重新启动容器内的apache2时,容器停止:
root@phalconapp:/var/www/html# service apache2 restart Restarting web server: apache2Terminated root@phaclonapp:/var/www/html# me@myLocalComputer:
如何在不停止容器的情况下重新启动apache2?
在将更改放入dockerfile之前,我想使用容器并对其进行自定义。我想安装一些扩展程序,为了使其正常工作,我需要重新启动apache才能使更改生效。
这是通过以下文件的日志文件:
Attaching to dltasklight_phlaconapp_1 phlaconapp_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message phlaconapp_1 | AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message phlaconapp_1 | [Mon May 30 10:19:24.556154 2016] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.10 (Debian) PHP/5.6.22 configured -- resuming normal operations phlaconapp_1 | [Mon May 30 10:19:24.556181 2016] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND' phlaconapp_1 | [Mon May 30 10:21:11.754993 2016] [mpm_prefork:notice] [pid 1] AH00169: caught SIGTERM, shutting down dltasklight_phlaconapp_1 exited with code 0
如果将apache用作保持运行容器的主要服务,则无法重新启动它。仅仅是因为您构建了图像并使用它设置了CMD。
CMD的主要目的是为执行中的容器提供默认值。这些默认值可以包含一个可执行文件,也可以忽略该可执行文件,在这种情况下,您还必须指定ENTRYPOINT指令。
尝试重新加载而不重新启动服务:
/etc/init.d/apache2 reload