docker-discover, Docker 容器的服务发现

分享于 

3分钟阅读

GitHub

  繁體 雙語
Service discovery for docker container
  • 源代码名称:docker-discover
  • 源代码网址:http://www.github.com/jwilder/docker-discover
  • docker-discover源代码文档
  • docker-discover源代码下载
  • Git URL:
    git://www.github.com/jwilder/docker-discover.git
    Git Clone代码到本地:
    git clone http://www.github.com/jwilder/docker-discover
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/jwilder/docker-discover
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    docker发现是一个利用haproxy和etcd的服务发现容器。 运行时,它为通过etcd发现的远程 Docker 容器设置侦听器。 它与docker寄存器协同工作。

    它们一起实现了服务发现插件,用于具有类似体系结构的Docker 容器( 与SmartStack组件相同)。 docker发现是在系统中使用analagous到 synapse的结果。

    请参阅使用和Haproxy服务发现 Docker 服务。

    工作原理

    运行时,容器将在主机上设置端口,这些端口可以从其他本地运行的容器访问。 例如主机端口 5000将向运行 EXPOSE 端口 5000的远程主机转发请求。 每个代理的服务端口都使用基本TCP健康检查进行监控,如果后端容器失败,则会。 这样可以确保后端容器可以根据需要启动和停止,因为客户机的影响。

    目的是在任何拥有需要调用基础设施的远程服务的容器上运行这个容器。

    在运行kdb的容器中,可以通过击 Docker 桥IP或者服务的相应 EXPOSE of端口来访问远程容器。

    用法

    要运行它:

    
    $ docker run -d --net host --name docker-discover -e ETCD_HOST=1.2.3.4:4001 -p 127.0.0.1:1936:1936 -t jwilder/docker-discover
    
    
    
    

    然后启动任何需要访问远程容器的容器。 你可以能希望将主机或者 Docker 桥IP的IP传递给一个环境变量,以便调用代理服务。

    你还可以通过向 localhost:port 发送请求来直接从主机访问远程容器。

    统计接口

    haproxy stats接口在端口 1936上公开。 打开浏览器到 http://localhost:1936 以查看它。

    限制

    简化了一些简化操作:

    • TCP代理默认情况下,每个侦听器使用haproxy模式的tcp
    • 在不同主机上使用循环策略负载平衡的多个容器负载平衡。 当前不支持状态/粘滞请求或者主/从类型方案。
    • 目前,最小的haproxy配置- 目前的haproxy模板非常少,而且可能还没有准备好用于生产使用。 请随时提交改进。

    待办事项

    • 支持 http,udp代理
    • 支持多个端口
    • 使ETCD前缀可以配置
    • 支持其他后端( 管理员,管理员,redis,等等 )

    许可证

    MIT


    DOC  服务  Docker  DOCK  Contain  disco  
    相关文章