为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
潇潇雨雨 2023-12-15 15:22:24
我有一个 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
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

修复图像的方法有两种。由于我找不到图像 digitalocean/php,因此我将在示例中使用 php:7.4-fpm。


第一种方式: 从容器中复制文件并使用它来构建您自己的映像:


创建 Dockerfile:


FROM php:7.4-fpm


COPY ./php-fpm.conf /usr/local/etc/php-fpm.conf

然后:


docker run --detach --name php php:7.4-fpm tail -f /dev/null

docker cp php:/usr/local/etc/php-fpm.conf php-fpm.conf

docker stop php

docker rm -v php

# Edit php-fpm.conf

docker 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 container

docker commit -a "you" -m "/usr/local/etc/php-fpm.conf fix" php myphp-fpm

docker stop php

docker rm -v php

docker run --detach --name php myphp-fpm

然后您再次获得基于固定映像的运行容器。


当然,您可以按照一开始运行原始映像的任何方式来运行新映像。


我推荐第一种方法,因为它更容易在容器外编辑文件。


查看完整回答
反对 回复 2023-12-15
  • 1 回答
  • 0 关注
  • 109 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信