具有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:
部分显式声明的存储