实际开发中 dns 是一个比较重要的组件, 一般大家可能会选择使用 dnsmasq 但是缺少 UI 可视化, 有些人可能会选择 powerdns
jpillora/dnsmasq 是一个对于 dnsmasq 的包装, 使用了 jpillora/webproc 为 dnsmasq 暴露一个可视化 UI, 以下是一个简单的运行
demo
环境准备
docker-compose 文件
- version: "3"
- services:
- dns:
- image: jpillora/dnsmasq
- ports:
- - "53:53/udp"
- - "53:53/tcp"
- - "8080:8080"
- env_file:
- - .env
.env 文件
主要是账户的
- HTTP_USER=demo
- HTTP_PASS=demo
- jpillora/dnsmasq dockerfile
使用 alpine 基础镜像, 同时对于 dnsmqasq 使用 alpine 的包管理, 使用
webproc 暴露 UI 服务
- FROM alpine:edge
- LABEL maintainer="[email protected]"
- # webproc release settings
- ENV WEBPROC_VERSION 0.2.2
- ENV WEBPROC_URL https://github.com/jpillora/webproc/releases/download/$WEBPROC_VERSION/webproc_linux_amd64.gz
- # fetch dnsmasq and webproc binary
- RUN apk update \
- && apk --no-cache add dnsmasq \
- && apk add --no-cache --virtual .build-deps curl \
- && curl -sL $WEBPROC_URL | gzip -d -> /usr/local/bin/webproc \
- && chmod +x /usr/local/bin/webproc \
- && apk del .build-deps
- #configure dnsmasq
- RUN mkdir -p /etc/default/
- RUN echo -e "ENABLED=1\nIGNORE_RESOLVCONF=yes"> /etc/default/dnsmasq
- COPY dnsmasq.conf /etc/dnsmasq.conf
- #run!
- ENTRYPOINT ["webproc","--config","/etc/dnsmasq.conf","--","dnsmasq","--no-daemon"]
启动 && 效果
启动
docker-compose up -d
效果
dns 查询
使用 dig 工具
dig @localhost www.baidu.com
效果
说明
以上是一个简单运行, 更多的学习下集成的方式
参考资料
https://github.com/jpillora/webproc
来源: http://www.bubuko.com/infodetail-3191773.html