Docker Nginx Log 三者的處理詳解
因為公司的同事需要Nginx日志標準輸出,也就是通過控制臺處理,那么我們需要先將日志寫到文件內:
error_log /var/log/nginx/error.log
access_log /var/log/nginx/access.log
處理方式無非有兩種:
1.創(chuàng)建宿主機路徑,然后將其掛載到容器內的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鏡像無容器日志輸出
剛好自己因為工作環(huán)境需要自己定制一個nginx鏡像,生成之后,發(fā)現(xiàn)容器沒有相關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/stdout lrwxrwxrwx 1 root root 11 Dec 29 10:51 error.log -> /dev/stderr
以上這篇Docker Nginx Log 三者的處理詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
docker-compose安裝RabbitMQ及插件操作步驟
這篇文章主要為大家介紹了docker-compose安裝RabbitMQ及插件操作步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01docker啟動鏡像失敗后如何用日志logs查找失敗原因及解決
在使用docker的時候,在某些未知的情況下可能啟動了容器,但是過了沒幾秒容器自動退出了,這個時候如何排查問題呢?下面這篇文章主要給大家介紹了關于docker啟動鏡像失敗后如何用日志logs查找失敗原因及解決的相關資料,需要的朋友可以參考下2023-05-05docker imageid 和 digest區(qū)別解析
在Docker中,image ID和digest是兩個不同的標識符,用于唯一標識和引用Docker鏡像的不同方面,這篇文章主要介紹了docker imageid 和 digest區(qū)別,需要的朋友可以參考下2023-06-06docker部署nginx及nginx.conf文件配置方式
這篇文章主要介紹了docker部署nginx及nginx.conf文件配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08