本文详细阐述了 `jelastic/nginxphp` docker 镜像在本地环境启动时服务(如 nginx 和 php-fpm)不运行的问题及其解决方案。由于该镜像专为 virtuozzo devops 平台设计,其默认启动命令是 `systemd`。教程将指导用户如何通过覆盖 docker cmd 来直接启动 nginx 服务,从而在本地成功运行并验证 `jelastic/nginxphp` 容器。
jelastic/nginxphp Docker 镜像的设计理念与 Docker Hub 上常见的通用 Nginx 镜像有所不同。它并非旨在作为独立的、开箱即用的 Web 服务器容器在本地直接运行,而是专为 Virtuozzo DevOps 平台优化,以支持该平台提供的所有功能和自动化特性。这意味着该镜像在启动时,其默认的 CMD(命令)是 /usr/lib/systemd/systemd,而非直接启动 Nginx 或 PHP-FPM 服务。
当用户尝试在本地环境直接运行此镜像时,例如使用 docker run -p 8080:80 jelastic/nginxphp:1.14.2-php-7.2.9,容器虽然会启动,但由于 systemd 进程被启动,而没有显式地去启动 Nginx 或 PHP-FPM,导致外部访问(如 curl 127.0.0.1:8080)时会收到“Empty reply from server”的错误,且在容器内部查看进程列表 (docker exec [container_id] ps aux) 也无法找到 Nginx 或 PHP-FPM 相关的进程。
为了验证上述情况,我们可以使用 docker inspect 命令来查看 jelastic/nginxphp 镜像的详细配置,特别是其默认的 Cmd。
docker inspect jelastic/nginxphp:1.14.2-php-7.2.9
在输出的 JSON 配置中,您会找到类似以下片段:
"Cmd": [
"/usr/lib/systemd/systemd"
],这明确指出,该镜像的默认启动命令是 systemd。在标准的 Docker 实践中,容器通常只运行一个主进程,并且该进程在前台运行。systemd 是一个初始化系统,它本身并不会直接提供 Web 服务,而是负责管理和启动其他服务。因此,在本地 Docker 环境中,如果需要直接运行 Nginx 服务,就必须覆盖这个默认的 CMD。
要在本地环境中成功运行 jelastic/nginxphp 镜像并使其提供 Web 服务,我们需要在 docker run 命令中显式地指定 Nginx 的启动命令,从而覆盖镜像默认的 CMD。
以下是正确的 docker run 命令示例:
docker run -p 8080:80 jelastic/nginxphp:1.14.2-php-7.2.9 /usr/sbin/nginx '-g daemon off;'
命令解析:
inx: 这是 Nginx 服务器的可执行文件路径。通过将其作为 docker run 命令的最后一个参数,我们告诉 Docker 容器启动时执行这个命令,而不是默认的 systemd。在执行上述 docker run 命令后,您可以打开一个新的终端窗口,通过 curl 命令验证 Nginx 服务是否已成功启动并监听在主机的 8080 端口:
curl 127.0.0.1:8080
如果 Nginx 成功运行,您应该会收到一个正常的 HTTP 响应(例如 Nginx 的欢迎页面或您在容器中配置的默认页面内容),而不是“Empty reply from server”错误。
您也可以通过 docker exec 进入容器内部,使用 ps aux 命令来查看 Nginx 进程是否正在运行:
docker ps # 获取容器ID docker exec [容器ID] ps aux | grep nginx
通过理解 jelastic/nginxphp 镜像的设计初衷并正确覆盖其默认 CMD,开发者可以在本地环境中有效地利用此镜像进行开发和测试工作。
# php
# js
# json
# docker
# nginx
# 端口
# curl
# ai
# 开发环境
相关文章:
如何在Ubuntu系统下快速搭建WordPress个人网站?
如何在宝塔面板中修改默认建站目录?
怀化网站制作公司,怀化新生儿上户网上办理流程?
网站制作公司排行榜,四大门户网站排名?
如何用PHP快速搭建CMS系统?
如何用狗爹虚拟主机快速搭建网站?
宝塔面板创建网站无法访问?如何快速排查修复?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
如何在香港服务器上快速搭建免备案网站?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
学校免费自助建站系统:智能生成+拖拽设计+多端适配
,网站推广常用方法?
孙琪峥织梦建站教程如何优化数据库安全?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
建站之星在线客服如何快速接入解答?
如何快速完成中国万网建站详细流程?
如何基于云服务器快速搭建网站及云盘系统?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
网站代码制作软件有哪些,如何生成自己网站的代码?
如何在建站之星绑定自定义域名?
Python多线程使用规范_线程安全解析【教程】
如何通过智能用户系统一键生成高效建站方案?
网站制作需要会哪些技术,建立一个网站要花费多少?
在线教育网站制作平台,山西立德教育官网?
如何快速登录WAP自助建站平台?
定制建站是什么?如何实现个性化需求?
Swift开发中switch语句值绑定模式
如何将凡科建站内容保存为本地文件?
如何选择高效可靠的多用户建站源码资源?
css网站制作参考文献有哪些,易聊怎么注册?
如何快速查询域名建站关键信息?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
如何通过IIS搭建网站并配置访问权限?
建站之星如何开启自定义404页面避免用户流失?
小型网站制作HTML,*游戏网站怎么搭建?
广平建站公司哪家专业可靠?如何选择?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
网站制作话术技巧,网站推广做的好怎么话术?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
建站之星如何取消后台验证码生成?
建站之星代理如何优化在线客服效率?
建站168自助建站系统:快速模板定制与SEO优化指南
建站之星代理平台如何选择最佳方案?
如何在阿里云服务器自主搭建网站?
山东云建站价格为何差异显著?
建站之星伪静态规则如何设置?
如何注册花生壳免费域名并搭建个人网站?
建站主机选购指南与交易推荐:核心配置解析
*请认真填写需求信息,我们会在24小时内与您取得联系。