docker - 容器如何枚举网络上可用的主机?

标签 docker docker-compose docker-swarm docker-api

用例:与docker compose一起运行的haproxy容器。我想让容器发现哪些主机可用,以便重新创建haproxy配置并重新加载它。

我知道会有一个或多个名为server1和server2的容器可用。从haproxy容器内部,我可以查询dns的server1并接收多个IP地址。这是知道新的server1硬币容器何时可用或死亡的唯一方法吗?我知道我可以在没有映射到docker主机套接字的容器内运行的python中使用docker api,但是我不确定在swarm上运行时是否可以使用。

完美的解决方案是让我注册一个事件处理程序的api或命令,当新容器加入网络时调用该事件处理程序。

最佳答案

您可以使用注册器(https://github.com/gliderlabs/registrator),领事和领事模板来解决。

领事是服务发现
Consul-Template监视Consul并更新HA Proxy配置并重新加载它。
Registrator侦听Docker Engine并更新Consul(如果有任何容器处于启动或关闭状态)。

请看图片:

enter image description here

对于完整的教程,您可以引用我的博客(https://sonnguyen.ws/microservices-with-docker-swarm-and-consul/)了解如何实现它。

关于docker - 容器如何枚举网络上可用的主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38004397/

相关文章:

Docker:来自守护进程的错误响应:未授权:客户端没有 list 权限

docker - 在本地主机上对多个项目使用相同的容器

Symfony 4 应用程序与 Docker Compose 一起工作,但与 Docker Swarm 一起中断(无法登录,分析器中断)

docker - 匹配除主机之外的所有主机,正则表达式

docker - 如何在不使用 .dockerignore 的情况下跳过构建上下文的发送?

node.js - Azure 上的 Strapi 无法运行

docker - 如何在 VsCode 的 docker 中调试我的 Startup.cs(调试器附加得太晚了)

docker - 从同一个 docker-compose 文件构建时的随机容器名称

docker - Swarm模式图像编排如何工作?

docker - 将 apache airflow docker operator 与 rootless docker 一起使用