首页 > 其他 > 详细

如何制作一个Nginx镜像

时间:2019-09-06 12:52:21      阅读:94      评论:0      收藏:0      [点我收藏+]

环境:CentOS7,Docker CE

1,Use below commands to prepare folders and testing files.

使用如下指令准备文件夹和测试文件

sudo mkdir -p firstnginx/test
sudo chmod -Rf 777 firstnginx
cd  firstnginx 
echo  this is the test1.html > test1.html
echo  this is the test2.html > test/test2.html

技术分享图片

 

2,Edit Dockerfile

编辑Dockerfile

sudo mkdir -p docker
sudo chmod -Rf 777 docker
sudo vi docker/Dockerfile

Copy the the content below  to the dockerfile:

#拷贝如下内容至Dockerfile

FROM centos:6
MAINTAINER Liping<tlping@163.com>

#add nginx repo and install nginx package
RUN bash -c "rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm && \
yum install -y nginx.x86_64"

#copy your customized nginx.conf to the container 
ADD ./docker/nginx.conf /etc/nginx/nginx.conf
#create nginx log folder
RUN mkdir -p /etc/nginx/logs

#copy full project to nginx web site folder
ADD ./ /var/www/html/public/

# publish the container port
EXPOSE 80
 
#copy your shell script to the container
COPY ./docker/my-init.sh /usr/bin/my-init.sh
#set execution access right 
RUN chmod +x /usr/bin/my-init.sh

#refresh the the container folder files
RUN bash -c touch /var/www/html/*

#execute the initializaton script
ENTRYPOINT ["my-init.sh"]

3,Edit nginx.conf file ,we need change the default website location of nginxserver

sudo vi docker/nginx.conf

Copy below content to the nginx.conf and Save.

#拷贝如下内容至nginx.conf 并且保存

 

技术分享图片
user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;



     server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        set $root    "/var/www/html/public";
		root $root;
        location / {
		    root    $root;
            index  index.html index.htm index.php l.php;



            try_files  $uri  /index.php$uri;

        }

        error_log    /var/www/html/err.txt    error;
        #error_page  404              /404.html;


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root  "/var/www/html";
        }

        location ~ \.php(.*)$  {
	        root    $root;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
      
        }

    }
#this statement must be put as the last line
include /etc/nginx/conf.d/*.conf;

}
View Code

4,edit my-init.sh file

编辑my-init.sh

sudo vi docker/my-init.sh

copy the content below to the file and save(拷贝如下内容至文件并保存)

#!/bin/sh

echo start nginx message now
service nginx start
echo finish
read

after you finish all above ,your current folder structure should be like this,

在你完成所有以上操作后,当前文件夹结构如下,

技术分享图片

 

 

 5,build the dockerfile(编译Dockerfile)

sudo docker build -t firstnginx -f docker/Dockerfile .

技术分享图片

 

 

技术分享图片

 

 

 

6,run the image to start a container(运行Docker镜像以启动容器)

sudo docker run -td --name first_nginx -p 8080:80 firstnginx

技术分享图片

 

 

7,

sudo docker ps -a | grep first_nginx

技术分享图片

 

 

 8,

Verfiy the test1.html and  test/test2.html

Open browser

http://localhost:8080/test1.html

http://localhost:8080/test/test2.html

here use your docker host ip address to replace sys.beserp.com

打开浏览器验证test1.html, test/test2.html文件是否可以被正常访问

技术分享图片

 

 

 技术分享图片

 

 

 

The nginx container is working!!

Nginx 运行起来了!

文章版权归属千分网络科技(重庆)有限公司

 

如何制作一个Nginx镜像

原文:https://www.cnblogs.com/lipingshare/p/make-a-docker-based-nginx.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!