首頁  >  文章  >  運維  >  Docker日誌大小限制和切換儲存目錄

Docker日誌大小限制和切換儲存目錄

WBOY
WBOY轉載
2023-06-09 19:18:421320瀏覽

Docker日誌大小限制和切換儲存目錄

產品的各種環境使用了許多 CentOS 虛擬機,預設 root 目錄空間是50 G,隨著使用時間越來越長,空間會變得不夠用。

一直採用的方法就是清除無用的映像和 Docker 日誌,伺服器就一直處於可用的狀態。直到連清理都沒用的時候,才想起來要需要找其他的方法。

當沒有逼到絕​​境的時候,我們會習慣性依賴自己熟悉的方法和工具,可能不高效,但能解決問題,這種又不是不能用的思維害人不淺,會讓人待在舒適圈不願意出來。

上面所說的其他的方法其實也很簡單,稍微查查資料就能獲得,就是限制 Docker 日誌大小和將 Docker 資料目錄切換到外部儲存。

日誌限制

1、編輯Docker 的設定檔 /etc/docker/daemon.json,如果該檔案不存在,就新建一個:

sudo vi /etc/docker/daemon.json

2、在在該檔案中加入以下內容,以限制單一日誌檔案的大小為100MB ,並保留最近5個日誌檔案。這裡我們使用 max-size 和 max-file 參數來控制日誌的大小和數量:

{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
}
  • max-size:單一日誌檔案的最大大小;
  • max-file:最多保留幾個日誌文件,當單一文件的日誌大小超過設定後,會產生新的日誌文件。

3、重新啟動 Docker 服務讓設定生效:

sudo systemctl restart docker

資料目錄切換

在 CentOS 中,Docker 預設的目錄為 /var/lib/docker ,可以使用 Docker 設定檔中的 data-root 選項,進行 Dcoker 資料目錄的設置,具體步驟如下:

1、在 /etc/docker/daemon.json  設定檔中新增 data-root 選項:

{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "5"
}
"data-root": "/home/docker"
}
  • /home/docker 目錄為外接存儲,或是空間比較大的磁碟區。

2、停用 Docker。

sudo systemctl stop docker

3、將 Docker 預設目錄中的內容拷貝到新的目錄中:

sudo rsync -aqxP /var/lib/docker/ /home/docker/
  • 一個用於遠端同步檔案和目錄的工具;
  • #告訴 rsync  以歸檔模式同步檔案和目錄,其中 a  表示歸檔模式,  q  表示安靜模式(不顯示輸出),  x  表示不跨越檔案系統邊界,  P 。

4、修改預設目錄的名稱為bak:

mv /var/lib/docker /var/lib/docker.bak

這樣做的好處是可以對原始資料進行備份,等運行穩定了再進行刪除,另外就是防止配置沒有生效導致還是讀取的原始目錄。

5、啟用 Dcoker:

sudo systemctl start docker

在上面第三步驟中使用了 rsync  這個指令來進行內容的同步,這個指令的意思是使用 rsync  工具將本地電腦中 /var/ lib/docker/  目錄下的所有檔案和子目錄同步到另一個本機電腦中的 /home/docker/ 

在此之前,進行檔案或目錄的操作使用 cp  和 scp 比較多,這次查資料時知道了rsync 這個指令工具,便繼續學習了下和 cp  、 scp 。

rsync 和cp 、 rsync 的差異

  • 複製方式:cp 和 scp 會將整個檔案複製到目標位置,而 rsync只會複製需要更新的部分,這可以提高複製的速度和效率。
  • 支援性:rsync 支援更多的操作,例如檔案同步、檔案備份、檔案復原等。 cp 和 scp 僅支援文件複製。
  • 傳輸方式:cp 在本機檔案系統之間複製文件,scp 進行遠端操作,而 rsync 則可在本機或遠端機器之間進行檔案同步。
  • 效率:rsync 更有效率,因為它只複製需要更新的檔案。
  • 可選:rsync 提供了更多的可選項和設定選項,例如壓縮、部分傳輸、跨檔案系統同步等。

總之, rsync 是更強大、更有效率的檔案複製和同步工具,如果需要在本機或遠端機器之間進行檔案同步、備份和復原等操作,建議使用rsync。而 cp 和 scp 則適用於簡單的本機檔案複製和遠端檔案傳輸。

總結

透過這次日誌限制和目錄切換的學習,有兩點思考:

1、很多時候,更好的方式就在離你不遠的地方,就看你願不願意往前邁一步去探尋一下,也就是說不能將就,不要有「又不是不能用」的思維,做產品、學技能都是一樣。

2、工作之後的很多技能的學習都是在不斷解決問題中學會的,這樣會讓你慢慢變得很有經驗,但不繫統,即便某個領域感覺已經非常熟悉了,我覺得也有必要再看看書進行系統化學習,一定能掃出許多盲點。

以上是Docker日誌大小限制和切換儲存目錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除