有没有办法在没有服务的情况下启动 docker 容器?

我有一个 php 容器,每次启动容器时都需要启动 php-fpm 。现在由于 php-fpm 配置文件中的配置错误,fpm 无法启动,因此容器无法启动。无论如何,我可以在没有 php-fpm 的情况下启动容器,以便修复配置文件吗? 容器错误如下:


[04-Sep-2020 13:47:30] ERROR: [/usr/local/etc/php-fpm.conf:7] value is NULL for a ZEND_INI_PARSER_ENTRY


[04-Sep-2020 13:47:30] ERROR: failed to load configuration file '/usr/local/etc/php-fpm.conf'


[04-Sep-2020 13:47:30] ERROR: FPM initialization failed


潇潇雨雨
浏览 68回答 1
1回答

繁花如伊

修复图像的方法有两种。由于我找不到图像 digitalocean/php,因此我将在示例中使用 php:7.4-fpm。第一种方式: 从容器中复制文件并使用它来构建您自己的映像:创建 Dockerfile:FROM php:7.4-fpmCOPY ./php-fpm.conf /usr/local/etc/php-fpm.conf然后:docker run --detach --name php php:7.4-fpm tail -f /dev/nulldocker cp php:/usr/local/etc/php-fpm.conf php-fpm.confdocker stop phpdocker rm -v php# Edit php-fpm.confdocker build --tag myphp-fm .docker run --detach --name php myphp-fpm然后你就可以根据固定的镜像运行容器了。第二种方式:使用损坏的映像运行 shell,修复文件并使用 shell 容器创建新映像docker run -it --name php php:7.4-fpm bash# Edit /usr/local/etc/php-fpm.conf# If you install any additional tools remember to remove them afterwards# and clean any cache's# Once you're done exit the shell, thus stopping the containerdocker commit -a "you" -m "/usr/local/etc/php-fpm.conf fix" php myphp-fpmdocker stop phpdocker rm -v phpdocker run --detach --name php myphp-fpm然后您再次获得基于固定映像的运行容器。当然,您可以按照一开始运行原始映像的任何方式来运行新映像。我推荐第一种方法,因为它更容易在容器外编辑文件。
打开App,查看更多内容
随时随地看视频慕课网APP