Docker系列教程18-用户定义网络中的内嵌DNS服务器

简介: 原文:http://www.itmuch.com/docker/18-docker-user-network-embeded-dns/ ,转载请说明出处。

原文:http://www.itmuch.com/docker/18-docker-user-network-embeded-dns/ ,转载请说明出处。

本节中的信息涵盖用户自定义网络中的容器的内嵌DNS服务器操作。连接到用户自定义网络的容器的DNS lookup与连接到默认bridge 网络的容器的工作机制不同。

注意 :为了保持向后兼容性, 默认bridge 网络的DNS配置保持不变, 有关默认网桥中DNS配置的详细信息,请参阅默认网桥中的DNS

从Docker 1.10开始,Docker daemon实现了一个内嵌的DNS服务器,它为任何使用有效namenet-alias 或使用link 别名所创建的容器提供内置的服务发现能力。 Docker如何管理容器内DNS配置的具体细节可随着Docker版本的改变而改变。 所以你不应该自己管理容器内的/etc/hosts/etc/resolv.conf 等文件,而是使用以下的Docker选项。

影响容器域名服务的各种容器选项。

--name=CONTAINER-NAME 使用--name配置的容器名称用于发现用户自定义网络中的容器。 内嵌DNS服务器维护容器名称及其IP地址(在容器连接的网络上)之间的映射。
--network-alias=ALIAS 除如上所述的--name 以外,容器可使用用户自定义网络中的一个或多个--network-alias (或docker network connect 命令中的--alias 选项)发现。 内嵌DNS服务器维护特定用户自定义网络中所有容器别名及IP之间的映射。 通过在 docker network connect 命令中使用--alias 选项,容器可在不同的网络中具有不同的别名。
--link=CONTAINER_NAME:ALIAS run 容器时使用此选项为嵌入式DNS提供了一个名为ALIAS 的额外条目,指向由CONTAINER_NAME 标识的IP地址。 当使用--link 时,嵌入式DNS将确保只在使用了--link 选项的容器上进行本地化查找。 这允许新容器内的进程连接到容器,而不必知道其名称或IP。
--dns=[IP_ADDRESS...] 如果嵌入式DNS服务器无法从容器中解析名称、解析请求,嵌入式DNS服务器将使用--dns 选项传递的IP地址转发DNS查询。 这些--dns IP地址由嵌入式DNS服务器管理,不会在容器的/etc/resolv.conf 文件中更新。
--dns-search=DOMAIN... 当容器内使用主机名不合格时所设置的域名。这些--dns-search 选项由嵌入式DNS服务器管理,不会在容器的/etc/resolv.conf 文件中更新。当容器进程尝试访问host 并且搜索域 example.com被设置时,例如,DNS逻辑不仅将查找host ,还将查找host.example.com
--dns-opt=OPTION... 设置DNS解析器使用的选项。 这些选项由嵌入式DNS服务器管理,不会在容器的/etc/resolv.conf 文件中更新。有关有效选项的列表,请参阅resolv.conf文档。

在没有--dns=IP_ADDRESS...--dns-search=DOMAIN...--dns-opt=OPTION... 选项的情况下,Docker使用宿主机的/etc/resolv.confdocker daemon 运行的地方)。 在执行此操作时,damon会从宿主机的原始文件中过滤出所有localhost IP地址nameserver 条目。

过滤是必要的,因为宿主机上的所有localhost地址都不可从容器的网络中访问。过滤之后,如果容器的/etc/resolv.conf 文件中没有更多的nameserver 条目,daemon会将公共Google DNS名称服务器(8.8.8.8和8.8.4.4)添加到容器的DNS配置中。 如果daemon启用了IPv6,则也会添加公共IPv6 Google DNS名称服务器(2001:4860:4860::8888 以及 2001:4860:4860::8844)。

注意 :如果您需要访问宿主机的localhost解析器,则必须修改宿主机上的DNS服务,以便侦听从容器内可访问的non-localhost地址。

注意 :DNS服务器始终为127.0.0.11

原文

https://docs.docker.com/engine/userguide/networking/configure-dns/

参考&拓展阅读

Docker内置DNS:https://jimmysong.io/blogs/docker-embedded-dns/

Dns: http://blog.csdn.net/waltonwang/article/details/54098592

目录
相关文章
|
6月前
|
安全 网络协议 算法
Nmap网络扫描工具详细使用教程
Nmap 是一款强大的网络发现与安全审计工具,具备主机发现、端口扫描、服务识别、操作系统检测及脚本扩展等功能。它支持多种扫描技术,如 SYN 扫描、ARP 扫描和全端口扫描,并可通过内置脚本(NSE)进行漏洞检测与服务深度枚举。Nmap 还提供防火墙规避与流量伪装能力,适用于网络管理、渗透测试和安全研究。
899 1
|
8月前
|
JSON 监控 API
在线网络PING接口检测服务器连通状态免费API教程
接口盒子提供免费PING检测API,可测试域名或IP的连通性与响应速度,支持指定地域节点,适用于服务器运维和网络监控。
1004 0
|
8月前
|
存储 测试技术 数据安全/隐私保护
【Docker项目实战】使用Docker部署dufs文件服务器
【Docker项目实战】使用Docker部署dufs文件服务器
1028 17
【Docker项目实战】使用Docker部署dufs文件服务器
|
7月前
|
Ubuntu 网络安全 PHP
如何使用vscode的Docker插件管理ubuntu 拉取服务器的镜像以及创建容器
本测试镜像旨在记录使用vscode的Docker插件拉取病创建Dockerfile,以及拉取镜像。
|
9月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
574 12
|
12月前
|
NoSQL Redis Docker
Docker——阿里云服务器利用docker搭建redis集群
本文详细记录了使用Docker搭建Redis集群的过程,包括检查Docker和Docker Compose的安装、创建Redis配置文件、编写`docker-compose.yml`文件、启动Redis节点、创建Redis集群的具体步骤,以及最终的验证方法。文章还提供了在多服务器环境下搭建Redis集群的注意事项,帮助读者全面了解 Redis 集群的部署流程。
1488 68
|
11月前
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
499 28
|
11月前
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
1425 31
|
10月前
|
网络协议 安全 Devops
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
Infoblox DDI (NIOS) 9.0 - DNS、DHCP 和 IPAM (DDI) 核心网络服务管理
387 4
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
1016 79

相关产品

  • 云解析DNS