Dockerfile构建nginx镜像以及使用nginx -g "daemon off;"方式前台运行

  • 编写安装nginx的shell脚本

    • #!/bin/bash
      yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel
      cd /usr/local/nginx-1.16.0
      ./configure --prefix=/usr/local/nginx && make && make install
  • dockerfile
    •  FROM  centos:7
      ADD nginx-1.16.0.tar.gz /usr/local
      COPY nginx_install.sh /usr/local
      RUN sh /usr/local/nginx_install.sh
      EXPOSE 80
  • 制作nginx镜像
    • docker build -t mycentos:nginx .
  • nginx镜像启动注意
    • 在容器里nginx是以daemon方式启动,退出容器时,nginx程序也会随着停止
    • /usr/local/nginx/sbin/nginx 使用前台方式永久运行:/usr/local/nginx/sbin/nginx -g "daemon off;"

      • Docker 容器启动时,默认会把容器内部第一个进程,也就是pid=1的程序,作为docker容器是否正在运行的依据,如果 docker 容器pid=1的进程挂了,那么docker容器便会直接退出。
        
        Docker未执行自定义的CMD之前,nginx的pid是1,执行到CMD之后,nginx就在后台运行,bash或sh脚本的pid变成了1。
        
        所以一旦执行完自定义CMD,nginx容器也就退出了。
  • 检查验证
    • docker run -itd -p 80:80 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
  • 访问宿主机80端口即可看到nginx访问信息

原文地址:https://www.cnblogs.com/weisunblog/p/12237696.html

时间: 2024-08-18 10:18:33

Dockerfile构建nginx镜像以及使用nginx -g "daemon off;"方式前台运行的相关文章

使用dockerfile构建docker镜像

一,简单介绍 docker镜像构建方式有两种方式,第一种是启动基础容器之后,进入容器安装所需要的文件,配置,变量等,完成后使用docker commit提交成为一个新的镜像,第二种则是通过编写dockerfile文件,进行镜像制作,使用docker  build命令进行镜像的构建.第一种方式可以看到镜像的生成过程,但是不便于自动化:第二种方式则比较直观,可以结合devops实现自动打包发布,本文则介绍如何利用dockerfile实现docker镜像的制作. Dockerfile描述了组装镜像的步

利用Dockerfile构建各种镜像

docker 使用Dockerfile 创建带jdk 和tomcat的镜像 http://blog.csdn.net/world_ding/article/details/46638371

8.Docker之使用dockerfile创建nginx镜像

一.前言 看了很多人的dockerfile,都是长篇大论,解释的又很少,对于初学者来说根本不知道指令的意思,哪怕知道指令的意思,也不知道指令后面配置的一大串东西来自于哪里,而这一大串又无需去记忆,例如: 开头的RUN指令都能根据dockerfile的指令说明可以知道该指令是干嘛用的,但是后面这一串这么长的东西又是来自于哪里? 所以在编写dockerfile之前,你必须懂的nginx(该文章是基于dockerfile创建nginx镜像)在linux上的安装流程,否则,需要安装什么依赖等都不知道,就

Dockerfile详解,以及构建自定义镜像

Dockerfile使用 前面的操作我们一直下载下载官方已经构建好的镜像,直接下载后就可以run,如果我们想要在镜像中添加自己的应用,比如在tomcat中添加自己的app,构建一个自定义的镜像,那么我们应该怎么做,这个时候就用到了Dockerfile.Dockerfile是由一系列命令和参数构成的脚本,Docker可以根据这个脚本基于某个基础镜像创建一个新的定制化的镜像,大大提高了我们部署的效率,使用Dockfile最终的结果是帮助我们定制化自己的镜像. Dockerfile初体验 下面就基于t

使用Nginx镜像代理.NET Core MVC

1.获取microsoft/dotnet镜像 docker pull registry.cn-hangzhou.aliyuncs.com/cjx/tutorial 如果有问题确认已经使用阿里云镜像加速,参考: http://www.cnblogs.com/windchen/p/6231009.html 如果不想使用此镜像也可以参照这篇直接从微软官方的镜像开始,如果是这样直接跳过第2步: http://www.cnblogs.com/windchen/p/6235406.html 2.启动Web

Docker中启动Nginx镜像,配置aspnetcore 网站代理

1.使用docker 下载nginx 镜像  docker pull nginx 2.启动nginx docker run --name nginx -p 80:80 -d nginx 这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令: docker exec -it nginx bash nginx.conf配置文件在 /etc/nginx/  下面,但是你使用vim nginx.conf 或者vi nginx.conf 会发现vi或者vim命令没

Dockerfile构建JAVA网站镜像

使用dockerfile构建Java镜像 首先下载所需要的安装包,最好放到跟dockerfile同级目录 编写dockerfile(拷贝文件,添加环境变量,暴露端口,执行启动tomcat命令) FROM centos:7 ADD jdk-8u211-linux-x64.tar.gz /usr/local RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk ENV JAVA_HOME=/usr/local/jdk ENV JRE_HOME=$JAVA_HOM

Docker | 第五章:构建自定义镜像

前言 上一章节,主要是介绍了下Dockerfile的一些常用命令的说明.我们知道,利用Dockerfile可以构建一个新的镜像,比如运行Java环境,就需要一个JDK环境的镜像,但直接使用公共的镜像时,一般上大小都比较大.所以本章节就主要结合Dockerfile文件及commit方式,构建属于自己的镜像,同时对镜像进行压缩和优化,同时也是对Dockerfile知识的一个实践. 利用Dockerfile构建自定义镜像 选定基础镜像 准备JRE版本 编写Dockerfile 实践:运行SpringB

docker上启动nginx,并配置修改nginx的配置文件

1.使用docker 下载nginx 镜像  docker pull nginx 2.启动nginx docker run --name nginx -p 80:80 -d nginx 这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令: docker exec -it nginx bash nginx.conf配置文件在 /etc/nginx/  下面,但是你使用vim nginx.conf 或者vi nginx.conf 会发现vi或者vim命令没