Docker nginx

简单了解 docker nginx 的配置

2018-10-14  本文已影响0人  蟹壳

在上一篇文章介绍了如何使用 docker 来启动 Nginx 服务器, 那仅仅是把 nginx 跑起来。要怎么对nginx 进行配置呢? 本篇文章,我们一起来了解一下。

到Nginx container 里面看一看

上回已经pull 了 nginx image, 这里再讲 nginx 跑起来并进入其所在的 container 里面看看

  1. docker run -p 80:80 --name ngx -it nginx /bin/bash

    • -it: 表示给一个可以交互的console
    • /bin/bash: container 里面使用/bin/bash
        [root@localhost demo]# docker run -p 80:80 --name ngx -it nginx /bin/bash
        root@2074560816b0:/# ls
        bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
        root@2074560816b0:/# 
    
    
  2. docker nginx 有 3 个主要目录

    • /etc/nginx : nginx 的配置目录
       root@e3121015f456:/# ls /etc/nginx/
       conf.d  fastcgi_params  koi-utf  koi-win  mime.types  modules  nginx.conf  scgi_params  uwsgi_params  win-utf
       root@e3121015f456:/# 
    
    • /var/log/nginx : nginx log 目录
        root@e3121015f456:/# ls /var/log/nginx/
        access.log  error.log
        root@e3121015f456:/# 
    
    • /usr/share/nginx/html : 资源目录
        root@e3121015f456:/# ls /usr/share/nginx/html/
        50x.html  index.html  static
        root@e3121015f456:/# 
    
  1. 我们可以将以上 3 个目录从nginx container 中映射到Linux 主机上, 这样可以方便修改配置、更换资源和查看log

将 3 个目录映射到本机

  1. 需要将 nginx container 的 /etc/nginx, /var/log/nginx 和 /usr/share/nginx/html 映射到本机

  2. 在启动了nginx container的情况下,使用docker cp 将 nginx 配置文件目录和资源文件目录先复制到本机的 /home/demo 目录下

        docker cp ngx:/etc/nginx .  ==> nginx配置文件目录
        docker cp ngx:/usr/share/nginx/html .   ==> 资源目录
        mkdir log  ==> 创建一个log 目录用了接收 nginx log
    
  3. 复制完,/home/demo 下会多出 2 个目录, nginx 和 html (我把nginx 目录重命名为config,html 目录重命名为 www)

    • 默认的nginx server 配置文件在 config/conf.d/default.conf
  4. 停掉当前已启动的nginx container

        docker rm -f ngx
    
  5. 使用一下命令来启动新的nginx container,用参数 -v 将 nginx 3 个目录映射到本机 /home/demo

        docker run --name ngx -d -p 80:80 \
        -v `pwd`/config:/etc/nginx \
        -v `pwd`/log:/var/log/nginx \
        -v `pwd`/www:/usr/share/nginx/html \
        -d nginx
    
  6. 用浏览器访问Linux 主机 (我的Linux ip 在192.168.56.1)

  7. 查看 log 目录下,会生成access.log 和 error.log

  8. 映射完目录启动的nginx container 会从本机目录读取配置和资源文件。 通过修改本机目录下配置和资源文件,来实现更新, 就好像nginx 是装在本机上一样来使用

使用 nginx 部署 vue demo

  1. 使用 vue-cli 生成一个一份demo, 用npm run build 构建好静态资源 (参考 简单说说 Vue-cli

  2. 将build 好的dist 目录下的资源复制到前面提到的 www 目录

    [root@localhost demo]#  ls www/
    50x.html  index.html  static
    
  3. 刷新浏览器 192.168.56.1,


    image.png
  4. 至此,使用docker nginx 成功部署 vue demo

上一篇下一篇

猜你喜欢

热点阅读