【问题标题】:Docker Swarm Persist DB DataDocker Swarm 持久化数据库数据
【发布时间】:2022-08-13 02:18:44
【问题描述】:

我已经看到了这个问题的变体,但由于某种原因,我认为我遗漏了一些东西。

问题

我在 docker swarm 上运行了几个容器。每次我的数据库容器或后端容器重新启动时,数据库都会被清除。我认为卷应该防止这种情况发生。

这就是我创建集群和容器的方式。

docker swarm init

docker network create --driver overlay network
docker volume create -d local --name mysql_data

docker service create --name db \\
    --replicas 1 \\
    --env MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=\"yes\" \\
    --env-file ../server/.env \\
    --network network \\
    --mount source=mysql_data,destination=/var/lib/mysql/data/ \\
    mariadb:10.7.3

docker service create --name django \\
    --replicas 1 \\
    --env CONTAINER=\"True\" \\
    --env-file ../server/.env \\
    --network network \\
    --with-registry-auth \\
    client_backend:deploy

docker service create \\
    --name frontend \\
    --replicas 1 \\
    --network network \\
    -p 8080:80 \\
    --with-registry-auth \\
    client_frontend:latest

我是否安装了错误的音量或者还有什么我遗漏的东西?

谢谢,

    标签: docker mariadb docker-swarm docker-volume


    【解决方案1】:

    docker“本地”卷驱动程序就是这样。它在每个节点的本地文件系统上创建卷。

    要获得群感知的持久存储,您有几个选择:

    如果您使用的是 PureStorage SAN 之类的东西,您可以使用他们的 Trident docker 卷插件,该插件可以识别 swarm。 Rancher 1 还可以构建具有持久卷支持的集群。

    否则,您可以使用 nfs 或 glusterfs 服务器滚动您自己的持久网络存储。使用 nfs 有一种语法可以使用本地驱动程序创建卷,但使用 nfs 选项和凭据,并且 docker 将在部署服务的每个节点上安装 nfs 卷。

    使用 glusterfs 有一些不同质量级别的社区 docker 卷插件,或者您可以在每个主机上挂载一个大的 /mnt/gfs/docker 挂载,然后使用来自每个需要持久存储的容器/服务的绑定挂载。

    【讨论】:

    • 我在单个主机上运行我的 swarm。快速浏览一下 Gluster 后,它看起来最适合多主机环境。真的吗?如果是这样,对于单个主机是否有更好的解决方案?我知道我可以绑定到主机目录,但我在某处读到它存在性能问题。
    • 就单个主机而言,gluster(和 nfs)将是矫枉过正,使用本地卷驱动程序应该没问题。我会检查/var/lib/mysql/data/实际上是mysql正在使用的文件夹。特别是当您列出的图像是 mariadb ...
    • 这就是问题所在。该目录应为/var/lib/mysql。如果您将其发布为答案,我会接受。
    【解决方案2】:

    原来问题是我映射到了错误的目录。

    我有 --mount source=mysql_data,destination=/var/lib/mysql/data/

    但它应该是

    --mount source=mysql_data,destination=/var/lib/mysql

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多