Nginx是用于HTTP,HTTPS,SMTP,POP3和IMAP协议的开源反向代理服务器,以及负载均衡器,HTTP缓存和Web服务器(原始服务器)。Nginx项目一开始就非常注重高并发,高性能和低内存使用。
应用示例
- Web服务器
docker run --name some-nginx -v /you/html:/usr/share/nginx/html:ro -d nginx:version
或者,使用Dockerfile直接构建镜像
FROM nginx
COPY static-html-directory /usr/share/nginx/html
将static-html-directory文件夹放在Dockerfile所在目录,运行
docker build -t some-content-nginx:version .
然后启动容器:
docker run --name some-nginx -d some-content-nginx:version
- 暴露外部端口
docker run --name some-nginx -d -p 8080:80 nginx:version
- 自定义配置文件
使用自定义的nginx.conf配置文件
docker run --name my-custom-nginx-container -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx:version
有关nginx配置文件的语法的信息
或者加载自定义的配置文件目录
docker run --name my-custom-nginx-container -v /host/path/nginx/conf.d:/etc/nginx/conf.d:ro -d nginx:version
- 以只读方式运行nginx
$ docker run -d -p 80:80 --read-only -v /host/path/nginx-cache:/var/cache/nginx -v /host/path/nginx-pid:/var/run nginx:version
更多信息,直接挂载本地目录 到 nginx相应的目录 覆盖即可
默认用户和组
uid=101(nginx)
gid=101(nginx)
groups=101(nginx)
以非root身份运行nginx
nginx.conf需要修改以下配置内容
pid /tmp/nginx.pid;
http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
...
}
小结
可以使用Amplify监控Nginx
官方镜像地址:https://hub.docker.com/_/nginx