具有Docker compose的MySQL数据库的默认写入位置

具有Docker compose的MySQL数据库的默认写入位置,docker,docker-compose,Docker,Docker Compose,我的docker compose.yml中有以下节点: mysql: image: mariadb:latest ports: - "3306:3306" environment: - MYSQL_USER=bla - MYSQL_PASSWORD=blubb - MYSQL_ROOT_PASSWORD=blubb - MYSQL_DATABASE=blubb volu

我的
docker compose.yml中有以下节点:

mysql:
    image: mariadb:latest
    ports:
        - "3306:3306"
    environment:
          - MYSQL_USER=bla
          - MYSQL_PASSWORD=blubb
          - MYSQL_ROOT_PASSWORD=blubb
          - MYSQL_DATABASE=blubb
    volumes:
      - ./docker/data:/data
      - ./docker/builds/mysql/my.cnf:/etc/mysql/my.cnf
      - ./docker/mysql:/var/lib/mysql
请参阅最后一行:
-./docker/mysql:/var/lib/mysql

如果我把这行放在那里,我的数据库就会在我的硬盘上持久化。如果我省略它,Docker会将文件写入其$HOME(即/HOME/user/xxx/.Docker/container/mysql/which)上的一个不可见文件夹吗

默认为
/var/lib/docker
下的系统控制目录。如果您在Docker工具箱或Docker机器环境中,Docker在VM下运行,则该目录路径位于VM内。Docker在某些地方以复杂的方式控制目录树,您通常不应该直接在其中执行任何操作

反过来,出现这种默认情况是因为MySQL Dockerfile包含行
卷[“/var/lib/MySQL”]
,这会导致Docker自动创建该存储。否则,唯一的持久性存储是使用
docker run-v
volumes:
部分显式声明的存储