devopt

dockerfile定制自己的nginx

2019-03-01  本文已影响35人  爱编程的凯哥

目标

通过dockerfile定制自己的nginx,可生产使用

模版

一个需要三个文件

[root@localhost nginx]# ls
default.conf  Dockerfile  nginx.repo

分别看下



//default.conf 
server {
    listen 80;
    server_name localhost;
    location / {
//  测试地址,我采用宿主机的ip端口,开的web服务
         proxy_pass http://192.168.1.110:8080/;
        proxy_set_header Host $host:80;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Via "nginx";
    }
}             

//Dockerfile,采用centos7作为标准镜像,不用nginx标准镜像原因是因为那样启动的容器是mina版的linux,太简单
FROM centos:centos7

#MAINTAINER 维护者信息
MAINTAINER fendo kai.yang@yeepay.com
ADD default.conf /etc/nginx/conf.d/
ADD nginx.repo /etc/yum.repos.d/
#RUN 执行以下命令
RUN yum install -y nginx

#EXPOSE 映射端口
EXPOSE 80

#CMD 运行以下命令,daemon off后台运行,否则启动完就自动关闭
CMD ["/usr/sbin/nginx", "-g","daemon off;"]          

//  nginx.repo ,用于yum直接安装nginx
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1                                                                                                                         

操作

  1. 首先进入文件所在目录
[root@localhost nginx]# cd /apps/nginx/
  1. 构建镜像,切记最后有个点,否则会报错( requires exactly 1 argument)
    [root@localhost nginx]# docker build -t nginx10 .

  2. 查看镜像

[root@localhost nginx]# docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
nginx10                           latest              dd7d54fef2f3        12 minutes ago      283MB

  1. 运行镜像
[root@localhost nginx]# docker run -d -p 8888:80 -p 90:80 dd7d54fef2f3

解释一下,-p 8888:80 -p 90:80表示将宿主机的8888和90都映射到容器的80端口,因为nginx.conf配置的是监听容器的80端口,所以访问宿主机的这两个端口都会触发转发逻辑。同理,如果容器中nginx需要监听多个端口时,也可以借用这种方式配置。看下效果

访问90端口 访问8888端口

完工!

上一篇 下一篇

猜你喜欢

热点阅读