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 的使用

  • 启用中文主题, 虽然支持有限,但聊胜于无

  • 有非常多的功能,监控,远程执行命令等,安装好自行体验即可

  • 目前需求是需要配置 dns 以将 test.com 解析到 192.168.123.214 中

  1. 服务器->BIND DNS Server->创建新的主区域

  2. 现有DNS区域->地址->新增记录,可以使用通配符解析,新建后应用配置生效

    添加配置后记得应用配置

  3. 本机设置 dns 192.168.123.214 以及 114.114.114.114(不然无法访问其他网站)

  4. 验证dns,正常ping test.com 的IP是存在的,现在就被解析到我们自己的dns了

    可能存在dns缓存,使用 ipconfig /flushdns刷新即可

踩过的坑

  • 默认启用了 SSL,所以如果使用 http 会提示,使用 https 访问
  • Edge 如果禁用 https 初始化会提示:Error - No cookies Chrome 可以

  • 代理/VPN的设置不对可能导致 DNS 时好时坏,这个时候记得检查下代理,正常dns的生效都挺快的

相关文档

后语

安装2分钟,文章写了一天,反复的尝试,理论的查询,时间飞逝

相关推荐
Irene19919 小时前
Win11 自动更新导致 Docker Desktop 无法正常启动,Oracle SQL Developer 启动时报错
docker·更新
darkdragonking11 小时前
OpenEuler 22.03 ,以docker ce 安装 Milvus 及可视化工具
docker·容器·milvus
我叫张土豆13 小时前
V100 显卡部署 Qwen3-ASR-1.7B 语音识别模型(vLLM + Docker 完整教程)
docker·语音识别·vllm
极客先躯15 小时前
高级java每日一道面试题-2026年01月18日-实战篇[Docker]-如何清理仓库中的旧镜像?
java·运维·docker·容器
木雷坞17 小时前
Docker Hub、GHCR、Quay 混在一起后,镜像源要分开测
运维·docker
qq_4523962317 小时前
第十五篇:《Docker 与 Kubernetes 集成:从 Swarm 到 K8s 的迁移》
docker·容器·kubernetes
lpfasd12318 小时前
docker中默认网络的作用和注意事项
网络·docker·容器
EntyIU18 小时前
DOCKER_CHEATSHEET
运维·docker·容器
颜淡慕潇18 小时前
低成本搭建鸿蒙PC运行环境:基于 Docker 的 x86_64 服务器
服务器·docker·harmonyos
SilentSamsara18 小时前
Python 与 Docker:多阶段构建、最小镜像与健康检查
运维·开发语言·python·docker·中间件·容器