mysql volume db-data:/var/lib/mysql/data 存储在哪里?



我试图了解 docker 并混淆卷的工作原理。

在官方文档中,有一些类似于我正在使用的docker-compose.yml文件的代码。

version: "3.7"
services:
wordpress:
image: wordpress
ports:
- "8080:80"
networks:
- overlay
deploy:
mode: replicated
replicas: 2
endpoint_mode: vip
mysql:
image: mysql
volumes:
- db-data:/var/lib/mysql/data
networks:
- overlay
deploy:
mode: replicated
replicas: 2
endpoint_mode: dnsrr
volumes:
db-data:
networks:
overlay:

我对db-data:/var/lib/mysql/data指的是什么以及docker实际存储数据库数据的位置感到困惑,特别是因为/var/lib/mysql在主机上

不存在目录。

所以这条线

volumes:
- db-data:/var/lib/mysql/data

基本上将卷db-data从主机挂载到容器中的/var/lib/mysql/data中。

如果db-data不存在,Docker将在主机中为您创建一个。

您可以在此处阅读更多内容。

这不是垃圾箱安装。docker-compose 文件创建一个名为 db-data 的卷,该卷未链接到任何路径(通过最后一个条目"db-data:"(,并由 docker 内部处理(可能会出现在/var/lib/docker 或类似内容中,但这并不重要,因为如果您不关心数据放在哪里,您通常会使用它, 你只是想要坚持(。

然后,由主机上的 docker 管理的数据库数据卷将链接到容器中的路径/var/lib/mysql/data,因此只要该卷未在主机上删除,容器中此路径中的任何内容都将持久存在。

最新更新