资讯专栏INFORMATION COLUMN

DNS 与 Docker 容器

宋华 / 3162人阅读

摘要:注该文由编写,原文地址为接着我们前面那篇关于容器迁移的文章。我想阐述一个简单的让容器之间通过名字交互的技巧。容器在启动的时候有不同的。例如,让你的容器知道数据库地址的变更。无论任何时候我们改变容器,我们更新配置文件并且获取服务更新。

  

注:该文由 Vincent Viallet 编写,原文地址为 DNS And Docker Containers

接着我们前面那篇关于容器迁移的文章。我想阐述一个简单的让容器之间通过名字交互的技巧。我们已经在构建 devo.ps 的时候使用了几次。

手头的问题是使用 Docker。容器在启动的时候有不同的 IP。甚至在一个成功的数据迁移或是简单的重起你的容器,你都需要传播这个新信息。例如,让你的 app 容器知道数据库地址的变更。

当然,你也可以使用 etcd 或是相关类型的工程。但是有时有点杀鸡焉用牛刀的感觉,或者是你只是简单的没有时间或者是没有资源。

让我们使用简单的方法:简单的设置一个 DNS。我们保持简单并且在当前主机使用 dnsmasq,因为它也被 Docker 用于 DHCP 的目的。

让我们开始:

dnsmasq 加载额外的配置文件

$ > cat /etc/dnsmasq.conf

listen-address=0.0.0.0
interface=lo
interface=eth0
interface=docker0
resolv-file=/etc/resolv.dnsmasq.conf
conf-dir=/opt/docker/dnsmasq.d         # <== Here !

我们使用 dnsmasq 作为它的解析器来获取容器;通常 172.17.42.1 是你主机的 IP。

$ > docker run -d -dns 172.17.42.1 -name db -h db db_image
$ > docker run -d -dns 172.17.42.1 -name app -h app app_image

无论任何时候我们改变容器,我们更新 host 配置文件并且获取 DNS 服务更新。

$ > container="db"
$ > new_ip=$(docker inspect $container | grep IPAddress | cut -f4 -d""")
$ > echo "host-record=$container,$new_ip" >     /opt/docker/dnsmasq.d/0host_$container
$ > service dnsmasq restart

你的 app 现在可以简单的通过在它的配置文件中使用 db 作为主机来访问它的数据库。上面的脚本可以有一个更好方法来处理边界情况,你可以尝试下。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26342.html

相关文章

  • Docker的大坑小洼

    摘要:正在学习,留着看看转自的大坑小洼成为云计算领域的新宠儿已经是不争的事实,作为高速发展的开源项目,难免存在这样或那样的瑕疵。话不多说,一起来领略的大坑小洼。原因回归至上文的第一个坑。如此一来,只要内部涉及到域名解析,则立即受到影响。 正在学习Docker,留着看看 转自Docker的大坑小洼 Docker成为云计算领域的新宠儿已经是不争的事实,作为高速发展的开源项目,难免存在这样或那样...

    My_Oh_My 评论0 收藏0
  • docker入门实战笔记

    摘要:创建用户组并添加用户。默认情况下是过滤掉所有的入站规则。初始命令表示一旦容器启动,需要运行的命令,此时使用,表示什么也不做,只需进入命令行即可。1.什么是docker  docker翻译为搬运工,在这里应该可以理解为搬运应用的工具,也就是云.先了解其运用场景之后更容易对他形成深刻理解.  Docker提供了一种可移植的配置标准化机制,允许你一致性地在不同的机器上运行同一个Container;...

    Tecode 评论0 收藏0
  • Docker安装应用

    摘要:一安装快捷安装快捷安装参考手动安装先查看内核,更新包要求系统的内核版本安装依赖包设置国内镜像源如果安装过,卸载旧版本查看仓库中所有,安装测试启动关闭服务加入随机启动二常用命令每次使用命令都需要, 一、docker安装 1、快捷安装 快捷安装参考:https://get.daocloud.io/#inst... curl -sSL https://get.daocloud.io/doc...

    Darkgel 评论0 收藏0
  • Docker安装应用

    摘要:一安装快捷安装快捷安装参考手动安装先查看内核,更新包要求系统的内核版本安装依赖包设置国内镜像源如果安装过,卸载旧版本查看仓库中所有,安装测试启动关闭服务加入随机启动二常用命令每次使用命令都需要, 一、docker安装 1、快捷安装 快捷安装参考:https://get.daocloud.io/#inst... curl -sSL https://get.daocloud.io/doc...

    leejan97 评论0 收藏0
  • FAQ宝典之常见问题排查修复方法

    摘要:日志会显示令牌过期的信息,随后检查主机和主机的时钟是否同步。如果这个子网已经被使用,你将需要更改网络中使用的默认子网。如果负载均衡器处于初始化状态,则很可能主机之间无法进行跨主机通信。而一直显示黄色初始化状态,说明一直没有通过健康检查。 一、服务/容器 1、为什么我只能编辑容器的名称? Docker容器在创建之后就不可更改了。唯一可更改的内容是我们要存储的不属于Docker容器本身的那...

    LdhAndroid 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<