【问题标题】:MariaDB volume in docker-compose clears out datadocker-compose 中的 MariaDB 卷清除数据
【发布时间】:2020-02-06 14:52:27
【问题描述】:

我正在使用 yobasystems/alpine-mariadb docker 映像来运行开发环境的实例。我正在将 MySQL 的数据目录安装到 docker 卷上,这在过去一直有效。我经常会丢失数据,但不会丢失表结构,我不知道为什么。

db:
    image: yobasystems/alpine-mariadb
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=database
      - MYSQL_USER=user
      - MYSQL_PASSWORD=password
    ports:
      - "33333:3306"
    volumes:
      - mariadb:/var/lib/mysql

【问题讨论】:

    标签: mysql docker docker-compose mariadb


    【解决方案1】:

    我怀疑在您的情况下该卷被删除(可能是通过docker-compose down -vdockere-compose rm -v)。

    请指定卷是外部使用 -

    volumes:
      mariadb:
        external: true
    

    来自 docker docs - external:如果设置为 true,则指定此卷是在 Compose 之外创建的。 docker-compose up 不会尝试创建它,如果它不存在则会引发错误。

    您可以在docker-compose up 之前使用docker volume create mariadb 创建卷

    【讨论】:

    • 感谢您的回复。我不明白为什么我的表结构会被保留?如果卷被删除,我肯定会失去一切吗?
    • 这个撰写文件中还有其他服务吗?也许他们依赖这个数据库服务并在容器启动时创建表。
    猜你喜欢
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多