您的位置:首頁技術文章
文章詳情頁

Docker Nginx Log 三者的處理詳解

瀏覽:184日期:2024-11-10 18:05:06

因為公司的同事需要Nginx日志標準輸出,也就是通過控制臺處理,那么我們需要先將日志寫到文件內:

error_log /var/log/nginx/error.log

access_log /var/log/nginx/access.log

處理方式無非有兩種:

1.創建宿主機路徑,然后將其掛載到容器內的nginx日志路徑:

docker run --name docker_nginx -d -p 80:80 -v /var/log/nginx/log:/var/log/nginx--!-v:掛載日志目錄

2.第二種就是落地到日志文件,然后導向標準輸出:

RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log

聽說第二種比較好?。?!

這樣日志問題就解決了!

補充知識:自定義docker nginx鏡像無容器日志輸出

剛好自己因為工作環境需要自己定制一個nginx鏡像,生成之后,發現容器沒有相關nginx日志輸出

FROM env_centos:latest COPY nginx.repo /etc/yum.repos.d/ # 注意,日志要重定向輸出到stdout,否則無法看到容器日志輸出RUN yum -y install nginx httpd-tools && mkdir -p /data/nginx_conf/upstream && mkdir -p /data/nginx_conf/vhosts && rm -f /etc/nginx/conf.d/default.conf && ln -sf /dev/stdout /var/log/nginx/access.log && > 這2行是關鍵,當然,這個要跟你的nginx配置文件匹配,不要照搬 ln -sf /dev/stderr /var/log/nginx/error.log > 這2行是關鍵 COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80#EXPOSE 443 CMD ['nginx', '-g', 'daemon off;']

最終的效果如下

#docker exec test123 ls -l /var/log/nginx/lrwxrwxrwx 1 root root 11 Dec 29 10:51 access.log -> /dev/stdoutlrwxrwxrwx 1 root root 11 Dec 29 10:51 error.log -> /dev/stderr

以上這篇Docker Nginx Log 三者的處理詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Docker
相關文章:
国产综合久久一区二区三区