docker-compose:卷问题:主机上的路径已创建,但容器没有填充



我有以下docker-compose:

version: '3.7'
services:
db:
image: bitnami/mongodb:5.0.6
volumes:
- "/app/local-data:/data/db"
env_file: ./db/.env

问题是数据在docker-compose up/down和docker似乎不使用/app/local-data之间不存在,即使它创建了它。

当我运行docker-compose时,容器启动并自然工作。目录/app/local-data由docker创建。,但是Mongodb不填充它,并且没有r/w错误显示在控制台上。这让我觉得一个临时卷被分配给了容器。但如果这是真的,那么为什么docker仍然创建/app/local-data而不使用它?

有什么想法我可以调试这个吗?

volumes:这样的Docker指令不知道图像中实际运行的是什么。如果需要,该指令会创建指定的主机和容器路径,并将主机路径绑定到容器路径中。这取决于应用程序代码是否使用该目录。

如果您查看bitnami/mongodbDocker Hub页面中的"持久化您的数据库",数据库被配置为将数据存储在容器内的/bitnami/mongodb目录中,该目录需要是第二个volumes:路径。还要注意,数据目录需要由用户ID 1001可写,这个用户ID 1001在您的主机上可能存在,也可能不存在(没有创建它的特定要求)。

volumes:
- "/app/local-data:/bitnami/mongodb"
#                  ^^^^^^^^^^^^^^^^
sudo chown -R 1001 /app/local-data
sudo docker-compose up -d

相关内容

  • 没有找到相关文章

最新更新