Docker 使用官方镜像构建 nginx 容器
前言
- 需要自己编译nginx容器看我另外一篇文章
编译 Nginx
特性:
1) 默认调优好 Nginx 配置
2) 默认添加虚拟配置,宿主机ip访问即可
3) 使用官方 nginx alpine 镜像安装
4) 新增 logrotate 将 nginx 日志按日期切割
5) 定义Nginx日志默认 JSON 输出,方便 ELK
目录说明:
1) Nginx项目路径 /data/wwwroot
2) Nginx日志路径 /data/wwwlogs
3) Nginx虚拟路径 /etc/nginx/conf.d
4) Nginx重写路径 /etc/nginx/conf.d/rewrite
1、使用方法
git clone https://github.com/G-Akiraka/DockerFile-Nginx.git && cd DockerFile-Nginx
2、开始构建 Docker Nginx 镜像
docker build -f nginx_1.17.8-alpine.yml -t nginx:1.17.8 .
3、运行 Nginx 容器
docker run -d -p 80:80 nginx:1.17.8
4、查看 Nginx 容器是否运行
docker ps
# 调试容器,如果需要的话
docker run -it nginx:1.17.8 sh
5、通过浏览器访问,默认可通过宿主机 ip 访问
通过 Dokcer compose 运行容器
# 启动并构建Nginx容器
sudo docker-compose up -d build
DockerFile 源码
# 从官方基础版本构建
FROM nginx:1.17.8-alpine
# 设置容器中文,否则中文乱码
ENV LANG C.UTF-8
# 设置时区
ENV TZ Asia/Shanghai
# 使用阿里源与设置时间
RUN sed -i s@/dl-cdn.alpinelinux.org/@/mirrors.aliyun.com/@g /etc/apk/repositories \
&& ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone \
# 更新系统\安装依赖包
&& apk update \
&& apk add fontconfig tzdata logrotate rsyslog \
&& rm -rf /tmp/* /var/cache/apk/*
# 添加 Nginx 启动脚本
ADD script/aka_nginx.sh /root
ADD config/logrotate-nginx /etc/logrotate.d/nginx
RUN chmod +x /root/aka_nginx.sh \
&& mkdir -p /data/wwwlogs \
# 添加定时任务,切割 nginx 日志
&& echo "1 0 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx >/dev/null 2>&1" >> /var/spool/cron/crontabs/root
# 拷贝 Nginx 配置文件
ADD conf /etc/nginx
# 启动 nginx 服务
CMD "/root/aka_nginx.sh"
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/linux/248.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
Docker 使用官方镜像构建 nginx 容器
前言
需要自己编译nginx容器看我另外一篇文章
编译 Nginx
特性:
1) 默认调优好 Nginx 配置
2) 默认添加虚拟配置,宿主机ip访问即可
3) 使用官方 nginx alp……
文章目录
关闭