gpt4 book ai didi

nginx - Dockerized nginx 没有启动

转载 作者:IT老高 更新时间:2023-10-28 12:36:00 27 4
gpt4 key购买 nike

我已尝试按照一些教程和文档对我的 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的(见the Dockerfile):

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

就我而言,这足以让它正常启动。网上有教程提出了更尴尬的方法来实现这一点,但上面看起来很干净。

关于nginx - Dockerized nginx 没有启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241292/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com