DNS 服务 docker-bind 的部署使用
前言
前面使用 nginx 代理转发了几个域名到服务器,但是每次添加一个域名都需要在客户端添加一行 hosts 文件,无疑是繁琐的,其中也提到可以使用 DNS 来实现自动解析域名 到指定服务器的功能,本篇将介绍开源 DNS 服务 docker-bind 的部署和使用
特点
- docker-bind 是一个基于 BIND 与 Webmin 构建的 DNS 服务镜像
- BIND 是实现互联网域名系统 (DNS) 协议的开源软件,用于搭建 DNS 服务。
- Webmin 是一款开源的Web界面管理工具,用于浏览器远程管理服务器
- 开源免费, 配置丰富(复杂),成熟稳定,中文主题支持有限,提供了一些服务器管理功能(监控,远程命令等),资源占用和安全性在使用时需要注意
使用情况
- 功能多但是大多有其他的平替,单独使用可以,但是个人不建议在容器中使用
- 用了两天感觉还是太重了,换成 DnsServer 了,下篇分享
docker-bind 的安装使用
准备
- 版本:v9.16.1-20200524
- docker 镜像:sameersbn/bind:9.16.1-20200524
- 默认端口映射:53:53/tcp 53:53/udp 10000:10000/tcp(53 端口为 DNS 服务使用,10000 为 Webmin 使用)
- Webmin 访问:https://ip:10000 必须使用 https 访问
使用 Docker Compose 安装
本篇文章基于 Docker V24 及 Docker Compose V2,安装可以参考之前的文章
配置说明
- 镜像版本:
sameersbn/bind:9.16.1-20200524
- 指定时区:
Asia/Shanghai
- 启用 Webmin 并指定 root 密码:
devops666
- 启用 SSL:默认值为 true,用 https 访问 webmin(https://ip:10000)
- 指定端口映射:53:53/tcp 53:53/udp 10000:10000/tcp(53 端口为 DNS 服务使用,10000 为 Webmin 端口)
- 挂载数据目录:
./data:/data
- 指定网络:devopsnetwork (
docker network create devopsnetwork
)
配置文件 compose.yml
- 准备好 compose.yml 拷贝到服务器
- 然后运行
docker compose up -d
即可
version: '3.1'
services:
dns:
image: sameersbn/bind:9.16.1-20200524
container_name: dns_9_16
restart: always
environment:
TZ : 'Asia/Shanghai'
ROOT_PASSWORD: devops666
WEBMIN_ENABLED: true
WEBMIN_INIT_SSL_ENABLED: true
ports:
- '10000:10000/tcp'
- '53:53/udp'
- '53:53/tcp'
volumes:
- ./data:/data
networks:
- devopsnetwork
networks:
devopsnetwork:
external: true
部署成功
部署机器 IP:192.168.123.214
容器中资源占用情况
Webmin 的使用
- 部署成功后访问:https://192.168.123.214:10000 默认启用了 SSL,使用 https://ip:prot
启用中文主题, 虽然支持有限,但聊胜于无
有非常多的功能,监控,远程执行命令等,安装好自行体验即可
目前需求是需要配置 dns 以将 test.com 解析到 192.168.123.214 中
服务器->BIND DNS Server->创建新的主区域
现有DNS区域->地址->新增记录,可以使用通配符解析,新建后应用配置生效
添加配置后记得应用配置本机设置 dns
192.168.123.214
以及114.114.114.114
(不然无法访问其他网站)验证dns,正常ping test.com 的IP是存在的,现在就被解析到我们自己的dns了
可能存在dns缓存,使用ipconfig /flushdns
刷新即可
踩过的坑
- 默认启用了 SSL,所以如果使用 http 会提示,使用 https 访问
Edge 如果禁用 https 初始化会提示:Error - No cookies Chrome 可以
代理/VPN的设置不对可能导致 DNS 时好时坏,这个时候记得检查下代理,正常dns的生效都挺快的
相关文档
- BIND官网:BIND
- Webmin官网:Webmin
- 项目地址:Github
- 镜像仓库:DockerHub
- 安装参考:docker部署内网dns解析服务
后语
安装2分钟,文章写了一天,反复的尝试,理论的查询,时间飞逝
DNS 服务 docker-bind 的部署使用的更多相关文章
- DNS服务和BIND
今天我们来介绍一下DNS服务,在大家的印象中DNS可能只是将域名解析为IP地址,可能其他的暂时还不太了解,希望本篇内容能帮助大家. 1.什么是DNS? DNS( Domain Name System) ...
- docker+ bind mount 部署复杂flask应用
报错如下: [root@test-wenqiang flask-skeleton]# docker run -d -p 80:5000 -v $(pwd):/skeleton --name flask ...
- dns服务之bind配置内网解析部分子域名,其它子域名转发
bind配置内网解析部分子域名,其它子域名转发.以下以m.xxx.com和admin.xxx.com由内网dns解析,其它*.xxx.com转发给外网dns解析为例配置.文件/etc/named.co ...
- CentOS7.x的DNS服务的基础配置
一.bind服务器安装 bind:开源.稳定.应用广泛的DNS服务.bind的软件包名bind,服务名称named. 查看是否安装bind, 安装bind包: rpm -qa bind yum -y ...
- 《linux就该这么学》第十四节课:第13章,部署DNS域名解析服务(bind服务)
(借鉴请改动) 第十二章收尾 12.2.nfs网络文件系统 RHEL7默认安装了nfs,配置文件在 /etc/export 写入格式:共享目录 允许的客户端(参数) ro ...
- DNS解析原理与Bind部署DNS服务
DNS是什么? DNS(Domain Name System,域名系统)是互联网上最核心的带层级的分布式系统,它负责把域名转换为IP地址.反查IP到域名的反向解析以及宣告邮件路由等信息,使得基于域名提 ...
- (二)跟我一起玩Linux网络服务:BIND的自动部署(附上完整的代码)
2015-03-24 如果看了我之前写的文章 DNS服务——BIND(/etc/named.conf./var/named)设置实现和解释,再来看这篇文章,你会发现部署BIND是件很简单的事情 如 ...
- Linux下DNS服务(Bind9)之Web管理利器-NamedManager部署说明
NamedManager 是一个基于Web的DNS管理系统,可用来添加.调整和删除DNS的zones/records数据.它使用Bind作为底层DNS服务,提供一个现代Ajax的Web界面,支持 IP ...
- Kubernetes 部署集群内部DNS服务
Kubernetes 部署集群内部DNS服务 部署官网:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/dns/ ...
- 使用BIND搭建内部DNS服务
...
随机推荐
- ChatGPT的探索与实践-业务应用篇
本篇文章主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程,恰逢今年京东20周年庆,文末会介绍如何与618大促实际的业务相结合,来提升应用价值.全是干货,且本文所有代码和脚本都是利用GPT ...
- 聊聊Spring注解@Transactional失效的那些事
一.前言 emm,又又又踩坑啦.这次的需求主要是对逾期计算的需求任务进行优化,现有的计算任务运行时间太长了.简单描述下此次的问题:在项目中进行多个数据库执行操作时,我们期望的是将其整个封装成一个事务, ...
- Bootstrap使用方法
中文文档:https://www.bootcss.com/ 使用方式: 1.选择对应的文档: 2.网站会自动跳转,一般选择Bootstrap3中文文档: 3.点击入门,下拉找到基础模板,复制代码到 ...
- 用 Python 自动创建 Markdown 表格 - 每天5分钟玩转 GPT 编程系列(4)
目录 1. 他们居然问我要 Prompts 2. 让 GPT-4 来写代码 2.1 我对 DevChat 说 2.2 DevChat 回答 2.3 我又对 DevChat 说 2.4 DevChat ...
- [碎碎念]和ljf老师聊天得到的一些启发,希望大家一起来吹水
关于写这个小文 和ljf老师聊天得到的一些启发,希望能够总结出来方便回顾,并且我觉得这些想法有一定的普适性,可以供大家参考. 疑问 我的疑问是,我现在主要在做fuzz+pwn,能够进行漏洞挖掘,以及w ...
- WPF的前世今生
1.WPF的布局 WPF的布局分为相对定位和绝对定位两种. 绝对定位一般用Canvas 相对定位一般用Grid.StackPanel.DockPanel.WrapPanel 2.MVVM模式是什么 M ...
- 为 VitePress 网站添加 RSS 订阅支持
省流:使用 vitepress-plugin-rss 这个插件 前言 在看许多个人博客站点的时候,右上角总会有个RSS订阅的标志 恰好我的博客也是基于 VitePress 搭建的,就想看看能不能也实现 ...
- Pytest+Jenkins 学习笔记
Pytest+Jenkins 学习笔记 在软件测试工作中,单元测试通常是由开发人员执行的.针对最小单元粒度的组件测试,在完成了单元粒度的测试任务之后,通常就需要交由专职的测试人员将这些单元级的组件放到 ...
- 《数据结构-C语言》单链表
@ 目录 单链表 结构定义 初始化 建立 清空 求表长 判断是否为空表 取值 查找 插入 删除 销毁 遍历打印 测试 单链表 结构定义 #include <stdio.h> #includ ...
- Vue【原创】整合el-dialog,可拖动可全屏最大化弹出框
项目中很多时候需要弹出框可以拖动并且可最大化,el-dialog是不满足的,这边采用指令的方式进行拓展. 先来个效果图: 首先来个v-darg指令: 1 import Vue from 'vue' 2 ...