docker搭建dnsmasq服务的实现

 更新时间:2024年01月18日 10:08:32   作者:douchunrong  
本文将指导读者如何使用Docker搭建DNSmasq服务,通过简单的步骤和详细的说明,帮助读者快速在Docker环境中部署DNSmasq,具有一定的参考价值,感兴趣的可以了解一下

Dockerfile 编写

mkdir -p /data/docker/dns && cd /data/docker/dns && vim Dockerfile

FROM centos:centos7.9.2009 as builder

ENV GOROOT=/usr/local/go
ENV GOBIN=/usr/local/go/bin
ENV GOPATH=/usr/local/go/gopath
ENV GOPROXY=https://goproxy.cn,https://goproxy.io,direct
ENV PATH=$PATH:$GOBIN:$GOPATH/bin

WORKDIR /opt

RUN  yum -y update && yum -y install wget git \
&& wget --progress=bar:force https://studygolang.com/dl/golang/go1.19.5.linux-amd64.tar.gz \
&& tar -zxvf go1.19.5.linux-amd64.tar.gz -C /usr/local \
&& rm -f go1.19.5.linux-amd64.tar.gz \
&& git clone https://github.com/jpillora/webproc.git \
&& cd webproc \
&& go build -o webproc -v .

FROM centos:centos7.9.2009

MAINTAINER traynordou@163.com

ENV DNSMASQ_CONF=/etc/dnsmasq.conf

COPY docker-entrypoint.sh /docker-entrypoint.sh
RUN chmod +x /docker-entrypoint.sh
COPY --from=builder  /opt/webproc/webproc /usr/bin/webproc

RUN yum -y install dnsmasq \
&& cp /etc/dnsmasq.conf /etc/dnsmasq.conf.default

EXPOSE 8080
EXPOSE 53

ENTRYPOINT ["/docker-entrypoint.sh"]

docker-entrypoint.sh 编写

vim docker-entrypoint.sh

#!/bin/bash
systemctl start dnsmasq
webproc -c /etc/dnsmasq.conf -c /etc/hosts -- dnsmasq --no-daemon

编译镜像

vim build.sh

#!/bin/bash
docker build -t dnsmasq:latest .

编译

sh build.sh

docker-compose.yml 编写

vim docker-compose.yml

version: '3'

networks:
  app-tier:
    driver: bridge

services:
  etcd:
    image: 'dnsmasq:latest'
    container_name: "dns"
    restart: always
    ports:
      - 8080:8080
      - 53:53/tcp
      - 53:53/udp
    volumes:
      - /etc/hosts:/etc/hosts
      - /data/docker_volumes/dns/dnsmasq.conf:/etc/dnsmasq.conf
      - /data/docker_volumes/dns/logs/dnsmasq.log:/va/log/dnsmasq.log
      - /etc/resolv.conf:/etc/resolv.conf
    networks:
      - app-tier

挂载路径创建

创建挂载

mkdir -p /data/docker_volumes/dns/logs && touch /data/docker_volumes/dns/logs/dnsmasq.log

创建 dnsmasq.conf

vim /data/docker_volumes/dns/dnsmasq.conf
尾部写入:

# Include all files in /etc/dnsmasq.d except RPM backup files
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig

# dns log
log-facility=/va/log/dnsmasq.log

完整内容查看:dnsmasq.conf

运行镜像

docker-compose up -d

查看

浏览器输入: ip:8080

dnsmasq-web-ui

客户端配置

在需要域名访问的机器上配置 DNS 地址,dns 地址为你搭建 dnsmasq 服务的地址。
以下为例子:

windows

windows-dns

centOS

linux-dns

macOS

macos-dns

域名访问

配置完成后即可按照你配置的域名进行访问,如上例,可以在浏览器输入 : myweb.com访问网站。

到此这篇关于docker搭建dnsmasq服务的实现的文章就介绍到这了,更多相关docker搭建dnsmasq服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker工作模式及原理详解

    Docker工作模式及原理详解

    Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!DockerServer接受到DockerClient的指令,就会执行这个命令
    2021-09-09
  • zabbix监控docker应用配置

    zabbix监控docker应用配置

    今天通过本文给大家分享zabbix监控docker容器的原理及部署的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-07-07
  • 解决docker日志挂载的问题

    解决docker日志挂载的问题

    这篇文章主要介绍了解决docker日志挂载的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • docker如何查询镜像版本信息

    docker如何查询镜像版本信息

    这篇文章主要介绍了docker如何查询镜像版本信息问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 在docker中安装mysql详解

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Docker之开启远程访问的实现

    Docker之开启远程访问的实现

    这篇文章主要介绍了Docker之开启远程访问的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 详解修改docker启动默认网桥docker0为自定义网桥

    详解修改docker启动默认网桥docker0为自定义网桥

    本篇文章主要介绍了详解修改docker启动默认网桥docker0为自定义网桥 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Docker容器下运行Nginx并实现反向代理

    Docker容器下运行Nginx并实现反向代理

    这篇文章介绍了Docker容器下运行Nginx并实现反向代理的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • 通过提前bake Docker镜像加快基础设施的启动速度

    通过提前bake Docker镜像加快基础设施的启动速度

    这篇文章主要介绍了通过提前bake Docker镜像加快基础设施的启动速度的相关资料,需要的朋友可以参考下
    2017-01-01
  • docker私有库的搭建实现

    docker私有库的搭建实现

    这篇文章主要介绍了docker私有库的搭建实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论