我正在使用docker swarm构建一个Web应用程序。
Manager机器将具有数据库和负载平衡器。
接下来,我有两个软件: Tornado 服务器,它充当用户和节点服务器之间的中间层。他们应该总是一起服务。一台 Tornado 服务器应始终与一台节点服务器通信。
我希望容器尽可能地隔离(以保持可伸缩性),但是如何确保这种通信呢?
现在,我的方法是构建两个单独的图像-一个用于 Tornado ,一个用于节点,然后创建将它们连接起来的多级容器。我觉得这不是最佳选择,因为我必须在CMD
中运行两个启动命令。
什么是首选解决方案?您可以强制Docker耦合镜像吗(例如不指定IP)?
最佳答案
docker 撰写文件中有一个链接功能:https://docs.docker.com/compose/compose-file/#links。但是最近Docker将其标记为已弃用,并建议使用用户定义的网络https://docs.docker.com/network/。
附注:还请注意以下注意事项:
- If you define both links and networks, services with links between them must share at least one network in common to communicate.
- This option is ignored when deploying a stack in swarm mode with a (version 3) Compose file.
关于docker - 我可以隔离docker swarm中的一对服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52226844/