Docker 容器中的「mkdir():裝置上沒有剩餘空間」問題。

Docker 容器中的「mkdir():裝置上沒有剩餘空間」問題。

我有一些 docker 容器(NGINX / PHP、MySQL 等),它們已經運作良好多年了。然而,最近我在 NGINX / PHP 容器中的 Laravel 中執行 PHP 腳本時開始看到此錯誤。

mkdir(): No space left on device

據我所知,當 Web 應用程式嘗試在登入 OTP / 2FA 步驟期間使用 Laravel 中的 Illuminate\Support\Facades\Mail 發送電子郵件時,它看起來像是被拋出/生成的。我假設有人嘗試寫入容器內的某種快取資料夾/檔案或其他目錄,這些目錄必須以某種方式已滿,否則無權寫入該位置。

看起來大多數 nginx 快取檔案都位於容器中的:/var/cache/nginx 中。

不過,最近代碼沒有任何變化。

有沒有辦法檢查容器中的可用空間,或以其他方式設定分配給 Docker 容器的大小?

答案1

預設情況下,容器可以存取的磁碟量沒有限制。有一個選項可用,但僅限於某些儲存驅動程式:儲存驅動程式選項

更有可能的是,運行 docker 容器的主機設備上沒有剩餘空間。您可以驗證它正在運行:

# df -h

另一個原因可能是沒有更多可用的索引節點(即使沒有填充檔案系統也會發生這種情況)。您可以驗證它正在運行:

df -i
# or
tune2fs -l /dev/<your disk device>

相關內容