MySQL镜像忽略了docker-compose.yml的卷配置

前端之家收集整理的这篇文章主要介绍了MySQL镜像忽略了docker-compose.yml的卷配置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

使用官方MySQL Docker镜像,我不明白如何将数据目录挂载到主机上的特定点. The Dockerfile的图像集

  1. VOLUME /var/lib/MysqL

所以数据库数据应该存储在主机上的“某处”.我希望在我的docker-compose文件中更具体,所以我尝试了以下内容

  1. MysqL:
  2. image: MysqL:5.7
  3. environment:
  4. - MysqL_ROOT_PASSWORD=password
  5. - MysqL_DATABASE=mydb
  6. volumes:
  7. - ./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而不是上面的两个命令.

猜你在找的Docker相关文章