使用Docker安装nginx及自定义构建Nginx镜像
Nginx安装启用 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中就nginx的安装启动进行实践,本文中再次利用docker镜像安装nginx,官网地址Nginx - Official Image | Docker Hub。
1、基础镜像
拉取镜像
还有save/load操作不详述。
2、运行镜像
3、测试
以上操作步骤看着是不是特别简单,实际上这只是直接运行Nginx容器作为静态服务器——Nginx最简单的应用场景之一。
对这个作为静态服务器的nginx操作还可以复杂一点,比如镜像预留了相应的VOLUME,所以直接执行docker run -v并指定目录映射:
docker -run --name static_nginx -v /static/content:/usr/share/nginx/html:ro -d ngnix
其中:ro表示容器对这个文件夹只读,这样有利于保护数据安全,放置因为容器内部错误而删改数据内容。
除了以上方式还可以使用Dockerfile构建静态容器:
From nginx
Copy static-html-dir /usr/share/nginx/html
修改路径下直接docker build即可。
同样,可以使用以上两种方式修改Nginx使用默认配置文件为自定义配置文件:
如果存在多个站点,每个站点独立一份配置文件时以上两种方式就不太方便使用了。好在nginx设计了conf.d目录:
docker run --name nginx -v /dir/nginx.d:/etc/nginx/conf.d/:ro -d nginx
通过上面的命令行运行Nginx容器显然会是docker run 命令很长,可以通过docker-compose来启动nginx。docker-compose.yml可参考如下示例:
以上只是对nginx镜像的简单使用,可以自定义更复杂的的使用。下面介绍两种自定义的nginx镜像:
一、基于Debian构建Nignx镜像
创建Nginx文件夹,分别存放接下来要用的文件夹,然后新建Dockerfile,如下:
以上nginx-module-*可以修改或添加用户的模块(nginx documentation),构建nginx: