【问题标题】:MySQL image ignores volume configuration of docker-compose.ymlMySQL 映像忽略 docker-compose.yml 的卷配置
【发布时间】:2015-10-12 18:37:39
【问题描述】:

使用官方的 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 up 开始一切正常,但是主机上的 ./database/mysql 目录保持为空,而容器中的 /var/lib/mysql 包含数据。我的配置有问题吗?还是我误解了如何使用卷?

【问题讨论】:

    标签: mysql docker docker-compose


    【解决方案1】:

    docker-compose 将始终尝试保留数据卷,这样您就不会丢失其中的任何数据。如果您从数据卷开始,然后更改为主机卷,您可能仍会获得数据卷。

    要更正此问题,请运行 docker-compose stop && docker-compose rm -f,这将删除您的容器和数据卷(这将删除数据卷中的所有数据)。在下一个 docker-compose up 上,您应该会看到它使用主机卷。

    编辑:从 Compose 1.6 开始,您可以运行 docker-compose stop -v 而不是上面的两个命令。

    【讨论】:

    • 你是对的,这就是重点。感谢您的解决方案+解释!
    • 谢谢!拯救我的一天!
    猜你喜欢
    • 2022-07-14
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    相关资源
    最近更新 更多