首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将多个容器的写入同步到群上的同一个卷?

如何将多个容器的写入同步到群上的同一个卷?
EN

Stack Overflow用户
提问于 2020-10-07 18:42:12
回答 2查看 761关注 0票数 1

在码头群中使用flock是否安全/可行?

我正在寻找一种安全的方法,让多个容器写入相同的文件(在相同的卷上)。我知道在一台主机上的docker将会bind mount。我不确定的是,当通过集群上的docker-compose旋转容器时,它是如何工作的。

如果我在一个服务中有多个相同镜像的实例,并且这些实例都共享一个卷,那么当我在一个群上启动时,容器是否会在不同的主机上启动?如果是,该卷将如何在操作系统级别共享?我有哪些用于控制并发写入的同步选项?

EN

回答 2

Stack Overflow用户

发布于 2020-10-07 20:34:43

创建NFS卷

示例:

代码语言:javascript
运行
复制
  # create a reusable volume
  $ docker volume create --driver local \
      --opt type=nfs \
      --opt o=nfsvers=4,addr=192.168.1.1,rw \
      --opt device=:/path/to/dir \
      foo

  # inside a docker-compose file
  ...
  volumes:
    nfs-data:
      driver: local
      driver_opts:
        type: nfs
        o: nfsvers=4,addr=192.168.1.1,rw
        device: ":/path/to/dir"
票数 2
EN

Stack Overflow用户

发布于 2020-10-07 23:03:09

docker volumes对于在其上创建它们的节点是本地的,它们不在docker swarm节点之间共享。

在多节点swarm集群中(或在Kubernetes中)运行时,容器可以在集群内的任何节点上结束。对于共享访问docker volume (或者Kubernetes中的PVC ),卷必须由可以从集群内的每个节点访问的网络文件系统之类的东西作为后备。

NFS第4版implements close-to-open consistency。有关NFS v4实现的全部细节,请参阅RFC 3530的"9.3.数据缓存“

共享保留和记录锁定是NFSversion4协议提供的功能,允许应用程序通过提供互斥功能来协调访问。

提示:命名的docker volumesbind-mounts,卷在(默认情况下) /var/lib/docker/volumes中的磁盘上创建,并在docker run -v <named_docker_volume>:<container_mount_path> ...期间绑定挂载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64242389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档