Nginx   发布时间:2022-05-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了docker自定义nginx容器无法启动大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图从头开始构建一个Nginx图像(而不是使用官方的Nginx图像)

FROM ubuntu
RUN apt-get update
RUN apt-get install -y Nginx    
RUN rm -v /etc/Nginx/Nginx.conf
ADD Nginx.conf /etc/Nginx/
RUN echo "daemon off;" >> /etc/Nginx/Nginx.conf

EXPOSE 80

copY ./files/ /var/www/html/

CMD service Nginx start
@H_301_7@

这是我在当前目录下的Nginx.conf文件.

server {

    root /var/www/html

    LOCATIOn / {
        index.html
    }

}
@H_301_7@

和我的虚拟index.html文件在./files文件夹下

301_7@

我运行这个命令

docker build -t Hello-world .
@H_301_7@

docker run -p 80:80 Hello-world
@H_301_7@

但是我说错了

 * StarTing Nginx Nginx
   ...fail!
@H_301_7@

可能是什么问题?

最佳答案
不要使用“service xyz start”

要在容器内运行服务器,请不要使用service命令.这是一个脚本,它将在后台运行请求的服务器,然后退出.当脚本退出时,容器将停止(因为该脚本是主要进程).

而是直接运行服务脚本为您启动的命令.除非它退出或崩溃,否则容器应继续运行.

CMD ["/usr/sbin/Nginx"]
@H_301_7@

Nginx.conf缺少事件部分

这是必需的.就像是:

events {
    worker_connections 1024;
}
@H_301_7@

server指令不是顶级元素

在Nginx.conf的顶层有服务器{},但它必须在协议定义(如http {})内才有效.

http {
    server {
        ...
@H_301_7@

Nginx指令以分号结尾

在root语句和index.html行的末尾缺少这些内容.

缺少“索引”指令

要定义索引文件,请使用index,而不仅仅是文件名.

index index.html;
@H_301_7@

没有HTML元素“p1”

我假设您打算使用< p="">这里.

301_7@

最后结果

Dockerfile:

FROM ubuntu
RUN apt-get update
RUN apt-get install -y Nginx
RUN rm -v /etc/Nginx/Nginx.conf
ADD Nginx.conf /etc/Nginx/
RUN echo "daemon off;" >> /etc/Nginx/Nginx.conf

EXPOSE 80

copY ./files/ /var/www/html/

CMD ["/usr/sbin/Nginx"]
@H_301_7@

Nginx.conf:

http {
    server {

        root /var/www/html;

        LOCATIOn / {
            index index.html;
        }
    }
}
events {
    worker_connections 1024;
}
@H_301_7@

大佬总结

以上是大佬教程为你收集整理的docker自定义nginx容器无法启动全部内容,希望文章能够帮你解决docker自定义nginx容器无法启动所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: