前端之家收集整理的这篇文章主要介绍了
MySQL镜像忽略了docker-compose.yml的卷配置,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用官方MySQL Docker镜像,我不明白如何将数据目录挂载到主机上的特定点. The Dockerfile的图像集
VOLUME /var/lib/MysqL
所以数据库数据应该存储在主机上的“某处”.我希望在我的docker-compose文件中更具体,所以我尝试了以下内容:
MysqL:
image: MysqL:5.7
environment:
- MysqL_ROOT_PASSWORD=password
- MysqL_DATABASE=mydb
volumes:
- ./database/MysqL:/var/lib/MysqL
从docker-compose开始一切正常,但主机上的./database/MysqL目录保持为空,而容器中的/ var / lib / MysqL包含数据.我的配置有问题吗?或者我误解了如何使用卷?
最佳答案
docker-compose将始终尝试保留数据卷,以便您
不会丢失其中的任何数据.如果您从数据卷开始,然后更改为主机卷,则仍可能获得数据卷.
要纠正这个问题,请运行docker-compose stop&& docker-compose rm -f,它将删除容器和数据卷(这将删除数据卷中的所有数据).在下一个docker-compose上,您应该使用主机卷看到它.
编辑:从Compose 1.6开始,您可以运行docker-compose stop -v而不是上面的两个命令.