我已经尝试按照以下教程和文档进行有关如何对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命令行中