在Docker群中共享绑定卷

时间:2018-07-20 07:40:18

标签: docker docker-compose docker-swarm

我们使用open-jdk映像部署jar。由于我们有多个罐子,我们只需使用绑定模式将它们附加并运行它们。我不想构建单独的映像,因为我们的部署将在气密的环境中进行,并且每次我都无法重建映像时,因为罐子会发生变化。

现在,我们正努力向集群迈进。由于它是绑定安装,因此无法将副本传播到其他节点。

如果使用卷,如何将这些罐子放入该卷?一种可能是,我可以运行一个虚拟的高山映像并将该卷安装到主机,然后可以与其他容器共享它。但是可以在节点之间共享该卷吗?这是最佳解决方案吗?另外,如果我需要更新罐子,那该怎么办?

我可以创建NFS驱动器,但是我试图找出一种没有它的实现方式。由于它是一个隔离的环境,并且可能包含关键数据,因此我也无法使用3rd party插件来完成这项工作。

那么在这种情况下如何实现docker swarm?

1 个答案:

答案 0 :(得分:1)

使用docker build。真的。

图像应该是应用程序及其运行时的静态副本,而不是关联的数据。语句“仅更改了罐子”表示“我们重建了应用程序”。尽管您可以 使用绑定挂载将应用程序注入到仅运行时的容器中,但我认为这并不是最佳实践,而对于已经存在大量编译能力的语言来说,这确实是双重的。时间步长。

如果您处于空白的环境中,则需要弄清楚如何提供应用程序更新(无论部署框架如何)。如果可以管理,最好的解决方案是在隔离的网络上建立一个私有Docker注册表,docker save您的映像(嵌入tar),然后docker loaddocker tag,并将它们docker push放入注册表。然后,您可以在任何地方使用带有注册表标记的图像名称,而不必担心手动将图像和/或jar文件压入。

否则,您需要手动分发映像tar并docker load,或者将更新的jar手动推送到每个目标系统。像Ansible这样的自动化系统可以很好地解决此问题;我偏爱Ansible,因为它不需要中央服务器。

相关问题