使用Docker快速部署Nginx服务器

Nginx是大规模互联网服务的最佳前端服务器,在Web服务、正向代理、反向代理、负载均衡等方面大量应用。Docker容器技术这两年超级火爆,可以实现快速的应用服务器部署。下面介绍通过Docker快速部署Nginx服务的方法,既可以用于大规模集群,也可以用于小规模服务、内部网站和个人网站的服务发布。

快速开始

运行下面的脚本:

docker run --name nginx -d -p 80:80 tutum/nginx

然后到浏览器输入http://localhost ,即可看到缺省的结果。

--name nginx ,该参数命名容器实例的名字,便于使用 docker rm -f nginx 直接删除。

现在,我们进去看一下容器里面的配置,运行:

docker exec -it nginx /bin/bash

缺省的Nginx安装在var/lib/nginx下,配置在etc/nginx下面,包括nginx.conf主配置文件,conf.d和site-enabled是附加的配置文件。后面,我们将会该目录映射到宿主机目录,以便于修改和管理。

网站开发

在宿主机建立一个目录app,然后将其映射到容器nginx的/app目录。/app目录在容器的缺省配置文件 /etc/nginx/site-enabled 中已经将/app设为缺省的网站根目录了。

运行如下命令:

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配置文件,如:

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

上面是使用命令行运行,下面将这些参数放到Dockerfile里面,然后运行docker build就可以生成自己的衍生镜像,放到自己的Docker Registry仓库里面运行。

FROM tutum/nginx
ADD sites-enabled/ /etc/nginx/sites-enabled/
ADD app/ /app/
EXPOSE 80

注意:

  • 这里将sites-enabled/和app/目录里的内容打包到docker镜像里面去了,因此从任何其它机器可以直接拉取镜像就可以运行,非常方便。
  • 但这也会带来安全性的隐患,比如将数据(如密码)传送到了运行机器,因此,切勿将这样的【打包镜像】传到公共的镜像仓库中
  • 构建器源码Dockerfile:https://github.com/openthings/nginx

转载于:https://my.oschina.net/u/2306127/blog/809232

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值