当前位置:   article > 正文

docker nginx_docker nginx log

docker nginx log

问题

docker部署个nginx,实在是再简单不过了吧

 #拉取镜像
docker pull nginx
#启动一个容器
docker run --name docker_nginx -d -p 80:80 docker.io/nginx
  • 1
  • 2
  • 3
  • 4

就运行起来了

但是存在的问题是:
1.日志哪儿去了?
2.修改了配置文件怎么办?
3.项目的文件放在哪儿

一般来说,解决的办法就是把文件放在宿主机,然后挂载到容器中,修改配置文件只需要docker exec -it containe_name bash进入到容器nginx -s reload重新加载一次配置文件即可。

我是直接拉取的docker hub的nginx镜像
在容器中相关位置分别是:

日志位置:/var/log/nginx/
配置文件位置:/etc/nginx/
项目位置:/usr/share/nginx/html
  • 1
  • 2
  • 3

解决

日志的问题:

nginx的日志比较简单,主要就是access和error日志,只需要挂载宿主目录到容器中nginx日志所在路径即可。

配置文件的问题

配置文件相对来说有点麻烦,一般nginx只需要加载nginx.conf就可以了,在dokcer中,是首先加载nginx.conf,然后在nginx.conf有这么一行include /etc/nginx/conf.d/*.conf;,就是加载conf.d目录下的配置文件。所以对于配置只需要挂载到conf.d,覆盖掉即可。
  • 1

项目文件的问题

类似日志的操作,挂载宿主机目录到容器即可。

运行容器
1.在宿主机器创建目录

mkdir -p /zzz/mynginx/nginx/log
mkdir -p /zzz/mynginx/nginx/conf
mkdir -p /zzz/mynginx/nginx/html
  • 1
  • 2
  • 3

2.运行容器

docker run --name docker_nginx -d -p 80:80\ 
  -v /zzz/mynginx/nginx/log:/var/log/nginx\
  -v /zzz/mynginx/nginx/conf:/etc/nginx/conf.d\
  -v /zzz/mynginx/nginx/nginx.conf:/etc/nginx/nginx/conf\ 
  -v /zzz/mynginx/nginx/html:/lx/html\
  nginx
#########
第一个-v:挂载日志目录
第二个-v:挂载配置目录
第三个-v:干脆把配置文件直接挂出来,不推荐
第四个-v:挂载项目目录
其他

1.修改配置文件后:
dokcer exec -it docker_nginx nginx -s reload即可,或者dokcer exec -it docker_nginx bash进入docker容器,nginx -s reload即可。

涉及到命令

在docker容器中执行命令:

dokcer exec -it docker_nginx 命令
或者dokcer exec -it docker_nginx bash 进入容器内执行。
验证nginx的配置文件和查看实际使用的配置文件的位置

nginx -t
查看容器信息

docker inspect 容器名
查看容器挂载情况

docker inspect 容器名 | grep Mounts -A 20
配置文件
/zzz/mynginx/nginx/conf/app.conf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /lx/html;
        index  index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/321087
推荐阅读
相关标签
  

闽ICP备14008679号