为docker容器提供域名解析服务

https://www.jianshu.com/p/10a47b59853e

仅列出我用过的几种方式

  • yum方式部署
  • docker方式部署

环境介绍

ip role
172.16.91.222 dns server
172.16.91.166 client
172.16.91.167 client

yum方式部署DNS服务 [物理部署]

具体安装过程如下:

使用下面的命令

yum install -y dnsmasq

打开/etc/hosts文件 ,添加要解析的域名,如

echo "172.16.91.165 lb.guxin.com" >> /etc/hosts

启动dnsmasq服务

service dnsmasq restart

查看dnsmasq服务的状态

service dnsmasq status

注意:
????每次更新/etc/hosts都要重启dnsmasq服务,重新加载/etc/hosts文件,

其他节点(166,167)上的docker,如何访问dns呢?

????需要更新/etc/docker/daemon.json,添加dns键值对 , 如

{
  "registry-mirrors": ["https://registry.docker-cn.com"],
  "insecure-registries":["172.16.91.222:80"],
   "dns":["172.16.91.222"]
}

客户端节点,需要重新启动docker服务,从而加载配置文件

systemctl docker restart

?
?

docker 版本的DNS服务器部署

下载镜像

docker pull jpillora/dnsmasq

打标签

docker tag jpillora/dnsmasq 172.16.91.222:80/dns/dnsmasq

push到harbor上

docker push 172.16.91.222:80/dns/dnsmasq

编写配置文件/root/dns/dnsmasq.conf //配置文件位置,根据自己需求存放


#dnsmasq config, for a complete example, see:
#  http://oss.segetech.com/intra/srv/dnsmasq.conf
#dns解析日志
log-queries
#域名与IP映射
address=/lb.guxin.com/172.16.91.165
说明:
>docker 容器内部 会将lb.guxin.com解析成172.17.205.28
### 编写启动脚本 

#!/bin/bash
docker stop xej-dnsmasq
docker rm xej-dnsmasq

docker run \
--name xej-dnsmasq \
-d \
-p 53:53/udp \
-p 6060:8080 \
-v /root/dns/dnsmasq.conf:/etc/dnsmasq.conf \
--log-opt "max-size=100m" \
-e "HTTP_USER=admin" \
-e "HTTP_PASS=123456" \
--restart always \
172.16.91.222:80/dns/dnsmasq


### web UI登陆
    http://172.16.91.222:6060
    username:admin
    password:123456    

### 测试
#### 其他节点(166,167)上的docker,如何访问dns呢?
????需要更新/etc/docker/daemon.json,添加dns键值对 , 如 

{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries":["172.16.91.222:80"],
"dns":["172.16.91.222"]
}


#### 客户端节点,需要重新启动docker服务,从而加载配置文件
>systemctl docker restart  

其实,docker部署跟yum部署,都是加载相同的配置文件,可以从日志中观察出来

原文地址:http://blog.51cto.com/xingej/2173492

时间: 2024-08-09 00:22:39

为docker容器提供域名解析服务的相关文章

使用BIND提供域名解析服务

使用BIND提供域名解析服务 - 简介 - 1. 部署主服务器 - 2. 部署主从服务器 - 2.1. 部署带安全加密传输的主从服务器 - 3. 部署缓存服务器 - 4. 分离解析技术 1 2 3 4 5 6 一.部署主服务器 基本过程 - 1. 编辑主配置文件 /etc/named.conf - 2. 编辑子配置文件(区域配置文件) /etc/named.rfc1912.zones - 3. 编辑正向解析配置文件 /var/named/linux.com.zone(自建) - 4. 编辑反向解

13 使用Bind提供域名解析服务

13 使用Bind提供域名解析服务 [13.1 DNS域名解析服务] 主服务器:在特定区域内具有唯一性,负责维护该区域内的域名与IP地址之间的对应关系. 从服务器:从主服务器中获得域名与IP地址的对应关系并进行维护,以防主服务器宕机等情况. 缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址的对应关系,并将经常查询的域名信息保存到服务器本地,以此来提高重复查询时的效率. 13.2 安装Bind服务程序 BIND(Berkeley Internet Name Domain,伯克利因特网名称

第13章 使用Bind提供域名解析服务

章节简述: 本章节将让您理解DNS服务程序的原理,学习正向解析与反向解析实验,掌握DNS主服务器.从服务器.缓存服务器的部署方法. 够熟练配置区域信息文件与区域数据文件,以及通过使用分离解析技术让不同来源的用户得到更合适的解析结果. DNS服务作为互联网的基础设施,我们还可以配置BIND服务程序支持TSIG安全加密传输机制,从而保障解析数据不被嗅探监听. 本章目录结构 13.1 了解域名解析服务 13.2 安装Bind服务程序 13.3 DNS服务的解析实验 13.3.1 正向解析实验 13.3

使用Azure Docker容器注册表服务

1.登录你的Azure 容器注册表服务 az acr login --name ledesign 2.给你本地准备好的Image打上上云之前的版本标签 docker tag ledesign-service-shorturl ledesign.azurecr.io/ledesign-service-shorturl:latest docker images 3.推送你的Image+Tag上Azure 容器注册表 docker push ledesign.azurecr.io/ledesign-s

使用Bind提供域名解析服务(正向解析)

小知识: 一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了. DNS域名解析服务,是用于解析域名与IP地址对应关系的服务,功能上可以实现正向解析与反向解析: 正向解析:根据主机名(域名)查找对应的IP地址. 反向解析:根据IP地址查找对应的主机名(域名). 本节我们主要讲正向解析. 好!开始我们的实验~ 首先我们要下载关于DNS的服务 输入命令:yum install

RHCE 第16节课 使用BIND提供域名解析服务

今天学习的是DNS服务和linux下提供DNS的软件服务BIND,感觉DNS不好理解,配置也比较难,需要多练习 原文地址:https://blog.51cto.com/12331786/2458506

Docker + Consul + registrator实现服务发现及nginx反向代理

一. 架构设计 在现实中,我们一直渴望着追求提供高质量.高可用的服务架构体系,同时减少不必要的部署和维护代价,减少容错率.面对如此高的要求,可以有两种架构方案:Docker+Etcd+Confd+NginxDocker+Consul+Nginx本文中我们主要来介绍 Docker+Etcd+Confd+Nginx方案,此方案更加高效.快捷,并且维护代价和容错率更低,分布式支持力度更强,如下图所示: 上面示意图的大概流程如下:1.docker01主机上以二进制包的方式部署consul服务并后台运行,

docker容器一

容器的介绍 容器是一种基础工具,泛指任何可以用于容纳其他物品的工具,可以部分或完全封闭,被用于容纳.存储.运输物品:物体可以被放置在容器中,而容器则可以保护内容物. 名称挂载点 Mount:挂载点 UTS:主机名与域名 IPC:信息量.消息队列和共享内存 PID:进程号 Network:网络设备.网络栈.端口号 user:用户和组 docker的概念 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一

docker overlay网络拓扑及服务注册问题

跨主机docker网络有多种方案,如overlay.flannel.calico.weave等,其中overlay是docker原生的跨主机网络方案.最近使用overlay方案部署容器集群,在进行服务注册时遇到问题,需要手动创建veth设备解决. 1. overlay网络拓扑 overlay网络中,docker会为每一个overlay网络创建一个独立的network namespace,即上图中的net1和net2.每个namespace中都有一个linux bridge br0,docker容