Akiraka Akiraka
  • Home
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • Big Data
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • K8S
    • Kubernetes
    • Helm
  • Other
  • Quark
  • Contribute
  • Home
  • Linux
    • ELK
    • PHP
    • Shell
    • Nginx
    • Docker
      • Docker Compose
    • Centos
    • Ubuntu
    • Jenkins
  • Python
  • Mac OS
  • Windows
  • Big Data
    • Hadoop
    • CDH
    • Hive
    • Spark
    • ZooKeeper
  • K8S
    • Kubernetes
    • Helm
  • Other
  • Quark
  • Contribute
首页 Linux Docker Docker 使用官方镜像构建 nginx 容器

Docker 使用官方镜像构建 nginx 容器

Akiraka 2年前

文章目录

  • 前言
  • 编译 Nginx
    • 1、使用方法
    • 2、开始构建 Docker Nginx 镜像
    • 3、运行 Nginx 容器
    • 4、查看 Nginx 容器是否运行
    • 5、通过浏览器访问,默认可通过宿主机 ip 访问
  • 通过 Dokcer compose 运行容器
  • DockerFile 源码

前言

  • 需要自己编译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"
#docker#linuix#nginx
0
猜你喜欢
  • Jenkins 升级失败
  • Dockerfile 构建 FreeRadis 镜像
  • KeyCloak Docker Compose 部署
  • KeyCloak 身份验证 Nginx 502网关错误
  • 密码保护:KeyCloak 结合 Gitlab SSO 一键登录认证
Akiraka
站长
本人擅长 Ai、Au、Fl、Ae、Pr、Ps 等软件的安装与卸载,精通 CSS、JavaScript、PHP、Python、Shell、Go 等单词的拼写,熟悉 Windows、Linux、Mac、Android、IOS 等系统的开关机!
160
文章
24
评论
73
获赞
Popular Articles
TOP1
Kubernetes(k8s)Helm 部署 EFK 集群
2年前
TOP2
Kubernetes(k8s)helm 搭建 prometheus + Grafana 监控
2年前
TOP3
Container 命令ctr、crictl 命令使用说明
11月前
TOP4
Kubernetes(k8s)Helm 部署 Jenkins 持续化集成部署
2年前
TOP5
Helm 部署 Loki 日志聚合
2年前
Related Articles
Docker Compose 内网设置
2年前
Mysql全量备份脚本
2年前
Ubuntu 18.04 服务器安装桌面
2年前
hue 报错
2年前
ElastrcSearch数据定期删除
2年前
Copyright © 2019-2022 Akiraka. 沪18036911号