我有一个码头-撰写文件,它可以扩展几个服务。我刚刚收到一个错误,说明我没有磁盘空间,所以我输入了“”,并看到我有21个卷。如果我有3个码头集装箱,每个集装箱都有一个容量,为什么它给我显示了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

发布于 2022-01-11 22:02:00
Docker映像的Dockerfile可以包含VOLUME指令。这是对Docker的一条指令,它告诉它某些容器目录包含需要持久化的数据,Docker应该始终确保在该目录上挂载某种类型的卷。
更具体地说,postgres映像宣告
VOLUME /var/lib/postgresql/data您的撰写安装程序不会在该特定目录上挂载任何内容。正因为如此,Docker创建了一个匿名卷并在那里为您挂载它。这并不是特定于postgres映像的,堆栈中的其他容器可能具有类似的本地数据目录。这些匿名卷就是您在docker system df输出中看到的内容(docker volume ls也将显示它们)。
在稍后的问题中,您还注意到Compose很难找到这些匿名卷,最好不要依赖这个功能。确保您正在通过Compose volumes:为这些数据目录安装主机目录或命名卷。
发布于 2022-01-11 19:03:13
如果主容器已启动并运行,则运行
docker volume prune它应该删除任何容器分离或未使用的卷,我使其习惯于在我的aws实例上定期运行。
docker system prunehttps://stackoverflow.com/questions/70670267
复制相似问题