Docker部署B(yǎng)Iind9 DNS服務(wù)器過(guò)程
一、環(huán)境準(zhǔn)備
安裝 Docker 環(huán)境
- 確保服務(wù)器已安裝 Docker 和 Docker Compose(若使用 Compose 方式)。
- 若離線部署,需提前在有網(wǎng)絡(luò)的環(huán)境中下載鏡像
sameersbn/bind
及相關(guān)依賴包。
創(chuàng)建持久化存儲(chǔ)目錄
mkdir -p /opt/docker/bind # 用于存儲(chǔ)配置文件和區(qū)域數(shù)據(jù)
二、部署 BIND DNS 容器
方案一:直接通過(guò) docker run 命令部署
docker run -d --name dns-server \ --restart=always \ --publish 53:53/tcp \ # 開放 DNS 服務(wù) TCP/UDP 端口 --publish 53:53/udp \ --publish 10000:10000/tcp \ # Webmin 管理界面端口 --volume /opt/docker/bind:/data \ # 掛載配置目錄 --env ROOT_PASSWORD=your_password \ # 設(shè)置 Webmin 登錄密碼 --env TZ='Asia/Shanghai' \ # 指定時(shí)區(qū) --env WEBMIN_INIT_SSL_ENABLED=false \ # 可選:禁用 SSL(若通過(guò)代理管理) sameersbn/bind:9.16.1-20200524
方案二:通過(guò) Docker Compose 部署(推薦)
創(chuàng)建 docker-compose.yml
文件:
version: '3.1' services: dns: image: sameersbn/bind:9.16.1-20200524 container_name: dns-server restart: always environment: TZ: 'Asia/Shanghai' ROOT_PASSWORD: your_password # Webmin 密碼 WEBMIN_ENABLED: 'true' # 啟用 Webmin ports: - "53:53/tcp" - "53:53/udp" - "10000:10000/tcp" volumes: - ./data:/data # 數(shù)據(jù)持久化目錄 networks: - dns-network # 可選:自定義網(wǎng)絡(luò) networks: dns-network: external: true
啟動(dòng)服務(wù):
docker compose up -d
三、Webmin 管理界面配置
訪問(wèn) Webmin
- 瀏覽器訪問(wèn)
https://<服務(wù)器IP>:10000
,使用root
和預(yù)設(shè)密碼登錄。 - 注意:必須使用 HTTPS,否則會(huì)提示 SSL 錯(cuò)誤。
基礎(chǔ)設(shè)置
- 進(jìn)入
Webmin -> Change Language and Theme
,選擇中文主題(部分菜單可能仍為英文)。 - 確認(rèn)時(shí)區(qū)設(shè)置與容器啟動(dòng)參數(shù)一致。
四、配置 DNS 解析規(guī)則
創(chuàng)建主區(qū)域(正向解析)
- 進(jìn)入
服務(wù)器 -> BIND DNS 服務(wù)器
,點(diǎn)擊 創(chuàng)建新的主區(qū)域。 - 填寫域名(如
example.com
),主服務(wù)器名稱設(shè)為localhost
,郵箱格式為admin.example.com
。
添加 A 記錄
- 在新建的主區(qū)域中,選擇 地址,輸入子域名(如
www
)和對(duì)應(yīng) IP(如192.168.1.100
)。 - 支持通配符
*
解析所有未定義子域名。
反向解析(可選)
- 創(chuàng)建反向區(qū)域(如
192.168.1.0/24
),添加 PTR 記錄將 IP 映射回域名。
應(yīng)用配置
- 每次修改后點(diǎn)擊右上角 應(yīng)用配置 或重啟容器使生效:
docker restart dns-server
五、客戶端測(cè)試與使用
配置客戶端 DNS
修改客戶端 DNS 服務(wù)器地址為 BIND 容器所在宿主機(jī)的 IP。
- Linux:編輯
/etc/resolv.conf
,添加nameserver 192.168.1.200
。 - Windows:在網(wǎng)絡(luò)適配器設(shè)置中指定 DNS 地址。
解析驗(yàn)證
nslookup www.example.com 192.168.1.200 # 指定 DNS 服務(wù)器查詢 ping www.example.com # 驗(yàn)證解析結(jié)果
緩存刷新(若需)
- Windows:
ipconfig /flushdns
- Linux:
systemctl restart systemd-resolved
。
六、注意事項(xiàng)與優(yōu)化
防火墻與 SELinux
- 開放端口:
53/tcp
、53/udp
、10000/tcp
。 - 若 SELinux 啟用,需調(diào)整策略或臨時(shí)禁用。
轉(zhuǎn)發(fā)外部 DNS(可選)
- 在容器內(nèi)修改
/data/bind/etc/resolv.conf
,添加公共 DNS(如114.114.114.114
)以解析外部域名。 - 修改
/data/bind/etc/named.conf.options
,添加allow-query { any; };
允許所有查詢。
性能與安全
- 避免在容器內(nèi)運(yùn)行非必要服務(wù)(如 Webmin 的監(jiān)控功能),減少資源占用。
- 定期備份
/opt/docker/bind
目錄防止配置丟失。
常見問(wèn)題:
- 端口沖突:若宿主機(jī) 53 端口被占用,可改為
-p 5353:53/udp
,但需客戶端顯式指定端口。 - Webmin 訪問(wèn)異常:確保使用 HTTPS,瀏覽器忽略證書警告或配置有效證書。
- 解析延遲:檢查 DNS 緩存,或重啟容器強(qiáng)制刷新。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker環(huán)境下安裝jenkins容器的詳細(xì)教程
這篇文章主要介紹了docker環(huán)境下安裝jenkins容器的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05Docker 教程之獲取鏡像基礎(chǔ)知識(shí)詳解
這篇文章主要介紹了Docker 教程之獲取鏡像詳解的相關(guān)資料,需要的朋友可以參考下2016-12-12淺談Docker 容器數(shù)據(jù)卷掛載小結(jié)
本篇文章主要介紹了淺談Docker 容器數(shù)據(jù)卷掛載小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Docker搭建Skywalking的實(shí)現(xiàn)示例
本文主要介紹了Docker搭建Skywalking的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02云原生自動(dòng)化應(yīng)用于docker倉(cāng)庫(kù)私有憑據(jù)secret創(chuàng)建
這篇文章主要為大家介紹了云原生自動(dòng)化應(yīng)用于docker倉(cāng)庫(kù)私有憑據(jù)secret創(chuàng)建,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03docker報(bào)錯(cuò)Container is not running問(wèn)題及解決
這篇文章主要介紹了docker報(bào)錯(cuò)Container is not running問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05CentOS8上用Docker部署開源項(xiàng)目Tcloud的教程
這篇文章主要介紹了CentOS8上用Docker部署開源項(xiàng)目Tcloud,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01Docker的徹底刪除與重新安裝完整步驟(ubuntu22.04)
Docker是一種輕量級(jí)的容器化平臺(tái),可以幫助開發(fā)人員將應(yīng)用程序及其依賴項(xiàng)打包成一個(gè)可移植的容器,這篇文章主要介紹了Docker的徹底刪除與重新安裝完整步驟的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03