docker embedded dns

最近有在使用docker-compose, docker-compose的语法将繁琐的docker run参数放在一个文件里,直接使用docker-compose up -d就按照我们自己定义的一些方式启动一组相关行的容器,十分方便;
但是有个问题一致困扰着我,docker-compose中的一系列服务相互能通过service_name直接调用,它是如何实现的呢?查看/etc/hosts也没有相对应的解析,/etc/resolv.conf中的记录为127.0.0.11

127.0.0.11不是很常见,何为127.0.0.11呢?
先来看看Docker Embedded DNS的概念,这个功能在1.10以后添加:

当使用default bridge network的情况下,docker container使用宿主机的resolv.conf。
当使用自定义的docker bridge network后,docker container使用embedded dns, 地址为127.0.0.11, 容器之间能够通过 vaild name or net-alias or link互相发现(若指定了docker daemon指定了DNS服务器,/etc/reslov.conf乃会是127.0.0.11, 但会把DNS请求转发给指定的DNS服务器);docker-compose默认就采用隔离的network(将compose中的service都放入一组自定义的bridge network),所以docker-compose中的容器就可以通过制定name的方式互相发现对方;

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

推荐阅读更多精彩内容

  • 因为工作需要,去学习了下Docker的embedded DNS. 这个功能似乎是1.10才加进来的,用来对Dock...
    WoodsWalker阅读 9,489评论 0 5
  • NAME dnsmasq - A lightweight DHCP and caching DNS server....
    ximitc阅读 7,949评论 0 0
  • p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Helv...
    乾坤菠菜籽阅读 5,933评论 0 6
  • 前奏 我秉持决绝的私欲 亦抱有纯然的乖张 拒绝烟火,也拒绝灰烬 摒弃愚昧 也摒弃真理 我从我失守的山河手里,收...
    鲸香阅读 760评论 0 0
  • 听了吴军的‘卡尼曼经济学,理性的作用’什么是理性?三要素:有知识,无偏见,合乎逻辑。为了证明一个东西无害,不自觉倾...
    AdaBleau阅读 2,435评论 0 1