我正在虚拟机上使用 docker-compose 运行一些 docker 映像。当我启动这些容器时,它们使用了大约 55MB:
# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 11 7 6.038GB 1.891GB (31%)
Containers 14 14 55.83MB 0B (0%)
Local Volumes 32 4 27.25MB 27.2MB (99%)
Build Cache 0 0 0B 0B
大约一周后,我收到了一些关于虚拟机磁盘空间不足的警告,我发现这些容器消耗了大约 122GB 的磁盘空间!
# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 11 7 6.038GB 1.891GB (31%)
Containers 18 0 122.2GB 122.2GB (100%)
Local Volumes 28 6 27.2MB 9.633MB (35%)
Build Cache 0 0 0B 0B
我多次遇到这个问题,直到我发现并使用它docker container prune来删除它们。
我在 docker-compose 中为卷使用本地路径,并将该路径指向与 root( /) 不同的分区上的某个磁盘。这是我的 docker-compose 的示例:
version: '3'
services:
webapp:
image: my-image
restart: always
logging:
options:
max-size: "8m"
max-file: "4"
environment:
TZ: Asia/Tehran
volumes:
- ./volumes/data:/var/webapp/data:Z
ports:
- 127.0.0.1:8080:8080
depends_on:
- db
db:
image: postgres:11
restart: always
environment:
POSTGRES_DB: database_name
POSTGRES_USER: database_user
POSTGRES_PASSWORD: database_password
TZ: 'Asia/Tehran'
PGTZ: 'Asia/Tehran'
volumes:
- ./volumes/db/:/var/lib/postgresql/data:Z