Nginx是大规模互联网服务的最佳前端服务器,在Web服务、正向代理、反向代理、负载均衡等方面大量应用。Docker容器技术这两年超级火爆,能够实现快速的应用服务器部署。下面介绍经过Docker快速部署Nginx服务的方法,既能够用于大规模集群,也能够用于小规模服务、内部网站和我的网站的服务发布。html
运行下面的脚本:前端
docker run --name nginx -d -p 80:80 tutum/nginx
而后到浏览器输入http://localhost ,便可看到缺省的结果。nginx
--name nginx
,该参数命名容器实例的名字,便于使用 docker rm -f nginx
直接删除。git
如今,咱们进去看一下容器里面的配置,运行:github
docker exec -it nginx /bin/bash
缺省的Nginx安装在var/lib/nginx下,配置在etc/nginx下面,包括nginx.conf主配置文件,conf.d和site-enabled是附加的配置文件。后面,咱们将会该目录映射到宿主机目录,以便于修改和管理。docker
在宿主机创建一个目录app,而后将其映射到容器nginx的/app目录。/app目录在容器的缺省配置文件 /etc/nginx/site-enabled 中已经将/app设为缺省的网站根目录了。vim
运行以下命令:浏览器
docker run --name nginx -d -p 80:80 \ -v /home/username/app /app \ tutum/nginx
而后到/home/username/app下建立一个index.htm文件,随便写点啥(vim index.htm)。再去刷新浏览器,能够看到刚才写入的内容了。若是没有看到,试试 docker logs nginx,看看日志。安全
在宿主机创建sites-enabled,而后映射到容器的/etc/nginx/sites-enabled/。注意下面的命令要使用绝对路径,将/.../sites-enabled/换成本身的绝对路径。 进目录/.../sites-enabled/,创建default配置文件。内容为标准的nginx配置文件,如:bash
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /app; index index.html index.htm; server_name localhost; location / { try_files $uri $uri/ =404; } }
上面这个文件是tutum/nginx里面的/etc/nginx/sites-enabled/default文件内容。
而后,运行以下命令:
docker run --name nginx -d -p 80:80 \ -v /.../sites-enabled/:/etc/nginx/sites-enabled/ -v /home/username/app:/app \ tutum/nginx
上面是使用命令行运行,下面将这些参数放到Dockerfile里面,而后运行docker build就能够生成本身的衍生镜像,放到本身的Docker Registry仓库里面运行。
FROM tutum/nginx ADD sites-enabled/ /etc/nginx/sites-enabled/ ADD app/ /app/ EXPOSE 80