我有一個啟動多個服務的 docker-compose 檔案。我剛剛收到一條錯誤訊息,指出我的磁盤空間不足,所以我輸入“docker system df”并看到我有 21 個卷。如果我有 3 個 docker 容器,每個容器都有一個卷,為什么它顯示我總共有 21 個卷?
我正在使用 AWS EC2。這是我的撰寫檔案,我設定卷的方式有什么問題嗎?當我關閉并重新啟動時,postgres 資料持續存在,我只是對卷大小和由于 T2 大型實體上沒有空間而無法重建的訊息感到困惑。
version: "3"
services:
nftapi:
env_file:
- .env
build:
context: .
ports:
- '443:5000'
depends_on:
- postgres
volumes:
- .:/app
- /app/node_modules
networks:
- postgres
postgres:
container_name: postgres
image: postgres:latest
ports:
- "5432:5432"
volumes:
- /data/postgres:/data/postgres
env_file:
- docker.env
networks:
- postgres
pgadmin:
links:
- postgres:postgres
container_name: pgadmin
image: dpage/pgadmin4
ports:
- "8080:80"
volumes:
- /data/pgadmin:/root/.pgadmin
env_file:
- docker.env
networks:
- postgres
networks:
postgres:
driver: bridge

uj5u.com熱心網友回復:
如果您的主要容器已啟動并正在運行,請運行
docker volume prune
它應該洗掉任何容器分離或未使用的任何卷我養成了在我的 aws 實體上定期運行的習慣
docker system prune
uj5u.com熱心網友回復:
一個 Docker 鏡像的 Dockerfile 可以包含一個VOLUME指令。這是給 Docker 的一條指令,告訴它某個容器目錄包含需要持久化的資料,并且 Docker 應始終確保將某種卷掛載在該目錄上。
更具體地說,postgres影像宣告
VOLUME /var/lib/postgresql/data
您的 Compose 設定不會在該特定目錄上掛載任何內容。因此,Docker 創建了一個匿名卷并將其掛載在那里。這不是特定于postgres影像的,堆疊中的其他容器可能具有類似的本地資料目錄。這些匿名卷就是您在docker system df輸出中看到的(docker volume ls也將顯示它們)。
在后面的問題中,您還注意到 Compose 無法找到這些匿名卷,最好不要依賴此功能。確保通過 Compose 為這些資料目錄安裝主機目錄或命名卷volumes:。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/408886.html
標籤:
上一篇:AWSLambda和X-Ray:(Python)如何安裝
下一篇:AWS“HelloWorld”PythonLambda導致Runtime.ImportModuleError:“無法匯入模塊”
