Docker容器间通信

  • 容器每次启动时会分配个一个IP地址,这个IP地址只在宿主主机内部有用,其它主机上的程序无法访问此IP

  • 一台机器上的docker容器之间默认是可以通过分配的IP进行通信的,可以通过启动参数 -icc=false —iptables=true 来关闭互通,严格隔离以提高安全性

  • 虽然每次启动分配的IP可能会变,但启动时加类似 —link redis:db 这样的参数给容器起别名,可以起到DNS作用,原理是在 /etc/hosts 里面映射IP到别名,这样你的程序和其他容器通信就可以不用管IP,用别名,IP变但它不会变

  • link只支持单主机,跨主机link最早的方案是Ambassador(docker远程代理),每台主机启动一个Ambassador容器负责对主机上其它容器的网络转发(socket proxy),后演变成 github.com/gliderlabs/connectable

  • 手动处理容器间通信很麻烦,一般用编排工具:kubernetes、swarm......

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自 http://blog.opskumu.com/docker.html 一、Docker 简介 Docke...
    极客圈阅读 10,543评论 0 120
  • 五、Docker 端口映射 无论如何,这些 ip 是基于本地系统的并且容器的端口非本地主机是访问不到的。此外,除了...
    R_X阅读 1,796评论 0 7
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 一,小王对于容器的困惑 小王刚开始学习Docker的时候,找资料在网上看到最多的是Docker的好处。比如: 1、...
    架构师小秘圈阅读 8,475评论 0 24
  • 不知道你们有没有这样的体验,当你读一个故事的时候,你总是把里面的场景与你现实所见过的,最容易想到的地方联系在一起:...
    一条朴刀阅读 232评论 0 0