当前位置: 首页 > 面试题库 >

Dockerized Nginx尚未启动

易阳朔
2023-03-14
问题内容

我已经尝试按照以下教程和文档进行有关如何对Web服务器进行docker化的操作,但是我无法通过docker run命令使该服务运行。

这是我的Dockerfile:

FROM ubuntu:trusty

#Update and install stuff
RUN apt-get update
RUN apt-get install -y python-software-properties aptitude screen htop nano nmap nginx

#Add files
ADD src/main/resources/ /usr/share/nginx/html

EXPOSE 80
CMD service nginx start

我创建我的图像:

docker build -t myImage .

当我运行它时:

docker run -p 81:80 myImage

它似乎只是停止:

docker ps -a

CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
90e54a254efa        pms-gui:latest      /bin/sh -c service n   3 seconds ago       Exit 0                                  prickly_bohr

我希望它与端口81-> 80一起运行,但事实并非如此。跑步

docker start 90e

似乎什么也没做。

我也尝试过直接输入

docker run -t -i -p 81:80 myImage /bin/bash

从这里我可以开始服务

service nginx start

从另一个标签中,我可以看到它正在按预期方式工作(也在我的浏览器中):

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
408237a5e10b        myImage:latest      /bin/bash           12 seconds ago      Up 11 seconds       0.0.0.0:81->80/tcp   mad_turing

所以我认为我的Dockerfile出了问题吗?谁能帮我这个忙,我对Docker还是很陌生。谢谢!

解决方案 基于Ivant的回答,我找到了另一种在前台启动nginx的方法。我的Dockerfile CMD现在看起来像:

CMD /usr/sbin/nginx -g "daemon off;"

问题答案:

到目前为止,官方的nginx映像使用它来运行nginx(请参阅Dockerfile):

CMD ["nginx", "-g", "daemon off;"]

就我而言,这足以使其正常启动。网上有一些教程建议完成此操作的更尴尬的方法,但以上内容似乎很干净。



 类似资料:
  • 问题内容: 我需要在Java应用程序中启动1-3个外部程序,这些程序具有用户定义的路径。我有几个要求: 如果程序已经在运行,我不希望其执行 我不希望任何程序从我的Java应用程序中夺走焦点 我不在乎其中任何一个是否无法启动。他们只需要默默地失败。 到目前为止,这是我想出的: 然后我再用其他两条路径重复3次。就像我期望的那样开始,并满足了我的第三个要求,但是在前两个条件上却失败了。 做这个的最好方式

  • 创建Spring Boot cloud config应用程序时出现以下错误。有什么帮助吗?

  • 有人能告诉我这条ffmpeg线有什么问题吗?我得到了错误: 输入1宽度619与输入0宽度618不匹配。在Parsed_vstack_3上配置输出焊盘失败,重新初始化筛选器时出错!无法将帧注入筛选器网络:处理流#2:0的解码数据时出现无效参数错误 白色固体的宽度被正确地设置为619。 查看错误屏幕截图错误,格式=YUV444P 变得灰蒙蒙的

  • 问题内容: 在我的项目中,我开始将c3p0与hibernate一起用于重新连接到数据库,因为在数据库故障时hibernate无法恢复连接。 我正在使用hibernate版本: postgresql驱动程序是: c3p0的配置是: 但我不断收到此错误: 我必须注意,我不是在自称自己! 那么,为了在Tomcat 7启动期间摆脱此错误,我该改变谁呢?我还从tomcat的lib目录中删除了postgres

  • 问题内容: 我正在尝试将我的应用程序升级到新版本的Firebase。我仔细阅读了设置指南,并编辑了所有代码以匹配新语法。但是,当我运行该应用程序时,出现了这两个错误。 我 在AppDelegate中,并将GoogleServices- Info.plist导入到我的项目中。plist也具有所有正确的信息。其他人遇到这个问题或知道如何解决? 问题答案: 这是您的问题的答案: 要配置Firebase,

  • 问题内容: 我的服务器中有一个奇怪的异常。 相同的应用程序(java,swing)在多个服务器上运行。 每个服务器都运行有双监视器。相同的jre版本(jre 6版本24)所有这些都占用相当大的CPU /内存。 仅在其中一个中- 当我将我的应用程序从一台监视器拖到另一台监视器时,会引发异常。我在下面附上了完整的例外。有人有什么主意吗 ? 谢谢。 现在,瞧瞧,例外: 问题答案: 尝试在Java命令行中