【发布时间】:2023-03-15 18:48:01
【问题描述】:
我有一个 docker 容器,它的卷与主机卷一起安装。这是它的 docker-compose 服务:
core:
image: index.docker.io/kaushal/demo_img
volumes:
- ./data/custom:/opt/custom:z
这里./data/custom 是主机目录,它在容器中使用/opt/custom 目录挂载。现在,为了实现高可用性,我想在不同的节点上使用 docker swarm 运行这个容器的多个副本。
当我启动 swarm 时,它总是显示 0/2 副本。原因在这里突出显示:https://stackoverflow.com/a/56707801/5353128(tl;dr 因为我在其他 swarm 节点中没有./data/custom dir)。
这个问题似乎是 docker swarm 的常见问题,但我找不到直接的解决方案。 Some of the SO posts 建议使用共享卷,但不清楚如何为这样一个简单的用例实现这样的共享卷。
另外,是否有任何替代共享卷的方法?任何参考将不胜感激。谢谢!
【问题讨论】:
-
在链接的问题上,我提供了使用 NFS 执行此操作的命令列表,并解释了该行为的原因。您是否要求没有外部卷的 HA?当节点出现故障时,您希望数据在哪里?
标签: docker docker-compose docker-swarm high-availability docker-volume