docker使用
1.docker ps 查看運行中的容器
2. docker images 查看docker映像
3. docker rm id 查看docker映像
3. (容器id) 刪除容器(容器id可以透過docker ps查看,容器必須停止後才能刪除)
3.1 刪除全部的容器docker rm `docker ps -a -q`
444444444444 。
7. docker run -it ubuntu:16.04 建立並執行容器容器
-t 表示在新容器內指定一個偽終端或終端機
-t 表示在新容器內指定一個偽終端或終端機
-i對容器內的(stdin) 進行互動
-p 指定映射埠
-d 在後台運行容器並列印容器id
7.建立並後台運行容器
7.2 docker run -ditp 8080:8080(主機連接埠:容器連接埠) ubuntu:16.04 建立並後台運行容器且映射容器的連接埠
ach8. (容器id) 進入正在運作中的容器環境
9.退出容器
9.1 exit 直接退出容器並終止容器運作
9.2 [ctrl p] [
rlC.2 [ctrl p] [ct ](快捷鍵) 退出容器,但不會終止容器運行
好了,大家了解了docker,以下是本文介紹的重點,一起看看吧。
nginx 自己沒有處理日誌的滾動問題,它把這個球踢給了使用者。一般情況下,你可以使用 logrotate 工具來完成這個任務,或者如果你願意,你可以寫各式各樣的腳本完成同樣的任務。本文筆者介紹如何滾動運行在 docker 中的 nginx 日誌檔案(下圖來自互聯網)。
想法
rotating log-files
•先把舊的日誌檔案重新命名
•然後給nginx master 程序發送usr1 訊號
•工作者進程打開新的日誌檔案並關閉舊的日誌檔案
其實真正需要我們做的工作只有前面兩點!
建立測試環境
假設你的系統中已經安裝好了docker,這裡我們直接執行一個nginx 容器:
$ docker run -d \ -p 80:80 \ -v $(pwd)/logs/nginx:/var/log/nginx \ --restart=always \ --name=mynginx \ nginx:1.11.3注意,我們把nginx 的日誌綁定掛載到了目前目錄下的logs 目錄下。
把下面的內容儲存到 test.sh 檔案中:
#!/bin/bash for ((i=1;i<=100000;i++)) do curl http://localhost > /dev/null sleep 1 done
然後執行這個腳本,就可以模擬產生連續的日誌記錄。
建立滾動日誌的腳本
建立rotatelog.sh 文件,其內容如下:
#!/bin/bash getdatestring() { tz='asia/chongqing' date "+%y%m%d%h%m" } datestring=$(getdatestring) mv /var/log/nginx/access.log /var/log/nginx/access.${datestring}.log mv /var/log/nginx/error.log /var/log/nginx/error.${datestring}.log kill -usr1 `cat /var/run/nginx.pid`
getdatestring 函數取當前的時間並格式化為字串,例如"201807241310 ",筆者比較喜歡用日期和時間來命名文件。注意這裡透過 tz='asia/chongqing' 指定了時區,因為預設格式化的是 utc 時間,用起來怪怪的(要實時腦補 8 小時)。下面的兩個 mv 指令用來重新命名日誌檔。最後透過 kill 指令向 nginx master 程序發送 usr1 訊號。
透過下面的命令為rotatelog.sh 檔案新增可執行權限並複製到$(pwd)/logs/nginx 目錄下:$ chmod +x rotatelog.sh
$ sudo cp rotatelog.sh $(pwd)/logs/nginx
我們的nginx 運行在容器中,所以需要在容器中給nginx master 程序發送usr1 訊號。因此我們需要透過docker exec 指令在mynginx 容器中執行rotatelog.sh 腳本:
執行一次上面的指令,會如期產生一批新的日誌檔:
下面我們把這個指令設定在定時任務中,讓它每天早上 1 點鐘執行一次。執行crontab -e 指令,並在檔案的末端加入下面的行:
* 1 * * * docker exec mynginx bash /var/log/nginx/rotatelog.sh
#儲存並退出就可以了。下圖是筆者測試過程中每 5 分鐘滾動一次的效果:
#為什麼不在宿主機中直接 mv 日誌檔案?
理論上這麼做是可以的,因為透過綁定掛載的資料卷中的內容從宿主機上看和從容器中看都是一樣的。但是真正這麼做的時候你很可能碰到權限問題。在宿主機中,你一般使用的是普通用戶,而在容器中產生的日誌檔案的擁有者是會是特殊的用戶,並且一般不會給其它用戶寫和執行的權限:
#當然,如果你在宿主機中使用的是root 使用者就不會有問題。
能從宿主機發送的訊號嗎?
其實這個問題的全名應該是:能從宿主機中傳送訊號給 docker 容器中的 nginx master 程序嗎?
答案是,可以的。
筆者這一文中介紹了容器中訊號的捕捉問題,有興趣的朋友可以去看看。在那篇文章中我們介紹了 docker 向容器中進程發送訊號的 kill 指令。我們可以透過指令:
$ docker container kill mynginx -s usr
向容器中的1 號行程(nginx master)傳送usr1 訊號(這個方式只能傳送訊號給1 號程序):
結合上面的兩個問題,我們可以寫出另外的一種方式來捲動docker 中的nginx 日誌。這種方式不需要透過docker exec 指令在容器中執行指令,而完全在宿主機中完成所有的操作:
•先重新命名容器資料卷中的日誌檔案
•給容器中的1 號程序發送usr1 訊號
以上是怎麼滾動docker中的nginx日誌的詳細內容。更多資訊請關注PHP中文網其他相關文章!

NGINX和Apache各有優劣,適合不同場景。 1.NGINX適合高並發和低資源消耗場景。 2.Apache適合需要復雜配置和豐富模塊的場景。通過比較它們的核心特性、性能差異和最佳實踐,可以幫助你選擇最適合需求的服務器軟件。

確認 Nginx 是否啟動的方法:1. 使用命令行:systemctl status nginx(Linux/Unix)、netstat -ano | findstr 80(Windows);2. 檢查端口 80 是否開放;3. 查看系統日誌中 Nginx 啟動消息;4. 使用第三方工具,如 Nagios、Zabbix、Icinga。

要關閉 Nginx 服務,請按以下步驟操作:確定安裝類型:Red Hat/CentOS(systemctl status nginx)或 Debian/Ubuntu(service nginx status)停止服務:Red Hat/CentOS(systemctl stop nginx)或 Debian/Ubuntu(service nginx stop)禁用自動啟動(可選):Red Hat/CentOS(systemctl disable nginx)或 Debian/Ubuntu(syst

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

服務器無權訪問所請求的資源,導致 nginx 403 錯誤。解決方法包括:檢查文件權限。檢查 .htaccess 配置。檢查 nginx 配置。配置 SELinux 權限。檢查防火牆規則。排除其他原因,如瀏覽器問題、服務器故障或其他可能的錯誤。

在 Linux 中啟動 Nginx 的步驟:檢查 Nginx 是否已安裝。使用 systemctl start nginx 啟動 Nginx 服務。使用 systemctl enable nginx 啟用在系統啟動時自動啟動 Nginx。使用 systemctl status nginx 驗證啟動是否成功。在 Web 瀏覽器中訪問 http://localhost 查看默認歡迎頁面。

在 Linux 中,使用以下命令檢查 Nginx 是否已啟動:systemctl status nginx根據命令輸出進行判斷:如果顯示 "Active: active (running)",則 Nginx 已啟動。如果顯示 "Active: inactive (dead)",則 Nginx 已停止。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器

Dreamweaver CS6
視覺化網頁開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能