【Docker学习之五】Nginx容器

Nginx目录下提前准备了Nginx配置文件 nginx.conf 以及项目的配置文件,我们以项目域名命名dev.g.pps.tv.conf等。Dockerfile内容为:

 

FROM nginx:1.9

ADD  nginx.conf      /etc/nginx/nginx.conf   #将目录下的nginx.conf文件写入容器/etc/nginx/目录下。
ADD  sites-enabled/*    /etc/nginx/conf.d/   #将目录下各个项目的配置文件写入容器/etc/nginx/conf.d/目录下。
RUN  mkdir /opt/www && mkdir /opt/log && mkdir /opt/log/nginx
RUN  chown -R www-data.www-data /opt/www /opt/log
VOLUME ["/opt"]

由于官方的 Nginx1.9 是基于Debian Jessie的,因此首先将准备好的配置文件复制到指定位置,替换镜像内的配置,这里按照个人习惯,约定 /opt/www 目录为Web服务器根目录, /opt/log/nginx 目录为Nginx的Log目录。

我们的nginx配置文件nginx.conf需要修改下:

access_log  /opt/log/nginx/access.log  main; #把访问日志路径改为挂载目录

还有一个地方是:

include /opt/conf/nginx/*.conf;              #把配置文件的路径改为挂载路径

 之后构建一下镜像

docker build -t scofi/nginx ./nginx

另外,我们各个虚拟站的配置文件(dev.g.pps.tv.conf),有几个地方需要修改:

location / {
        root   /opt/www/dev.g.pps.tv;  #改为挂载地址
        index  index.php index.html index.htm;
    }

 还有一个地方需要修改,就是和PHP关联的地方,由于一些原因我们到后面再说。

之后运行容器

docker run -p 80:80 -v /home/docker:/opt -d scofi/nginx:1.9

 

注意我们将本地的80端口绑定到容器的80端口,并将本地的 /home/docker 目录挂载到容器的 /opt 目录,这样就可以将项目源代码放在 /home/docker 目录下并通过容器访问了。

这时候我们打开浏览器访问服务器IP,就可以看到/home/docker/www/dev.g.pps.tv/ 下面的网页了。

posted @ 2015-12-28 16:46  scofi  阅读(582)  评论(0编辑  收藏  举报