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挂载本地目录及实现文件共享的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Docker compose部署minio服务

    Docker compose部署minio服务

    这篇文章主要介绍了Docker compose部署minio服务,minio的作用就是用来存储文件的,比如图片、视频、音频等各种类型的文件,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • FastAPI 部署在Docker的详细过程

    FastAPI 部署在Docker的详细过程

    这篇文章主要介绍了FastAPI 部署在 Docker的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • 如何使用docker配置wordpress

    如何使用docker配置wordpress

    本文详细介绍了如何使用Docker安装并配置WordPress,包括配置Yum源下载Docker,检查安装成功,并设置开机启动,还涉及了如何配置MySQL密码,以及设置php.ini来增加WordPress的文件上传大小限制,最后,通过访问指定IP完成WordPress的配置
    2024-10-10
  • Docker拉取ubuntu镜像并建立环境的详细过程

    Docker拉取ubuntu镜像并建立环境的详细过程

    在Docker实战中Ubuntu是一个常见的基础镜像,用于构建其他应用服务的容器,这篇文章主要给大家介绍了关于Docker拉取ubuntu镜像并建立环境的详细过程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Docker安装OpenWrt的实现步骤

    Docker安装OpenWrt的实现步骤

    OpenWrt是一种可以运行在路由器上的嵌入式操作系统,提供了许多网络服务和功能,本文主要介绍了Docker安装OpenWrt的实现步骤,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 使用docker搭建go环境的简单步骤

    使用docker搭建go环境的简单步骤

    最近公司里面的项目用到了Docker,正好准备学习下Golang,所以就学习Golang顺便也学习下Docker怎么用的,刚好从头开始配置下环境,这篇文章主要给大家介绍了关于使用docker搭建go环境的简单步骤,需要的朋友可以参考下
    2023-10-10
  • 容器化技术架构jenkins docker k8s脚本浅析

    容器化技术架构jenkins docker k8s脚本浅析

    本篇博文不是详细介绍容器技术的,而是具体的实践。此篇博文分为两个阶段,分别是ci,cd。包含三部分内容,分别是jenkins,docker,k8s的脚本浅析
    2022-03-03
  • docker打包镜像后EasyExcel报错,dockerfile缺少字体的解决

    docker打包镜像后EasyExcel报错,dockerfile缺少字体的解决

    解决Docker打包镜像后EasyExcel报错的问题:1. Dockerfile增加字体配置;2. 使用EasyExcel的write时添加"inMemory"参数为true,开启内存处理模式(不推荐,1W数据以内可以考虑)
    2025-02-02
  • 如何使用 Docker 部署 Spark 集群

    如何使用 Docker 部署 Spark 集群

    本文介绍了如何通过DockerCompose部署一个Spark集群,包括一个Master节点和多个Worker节点,环境要求包括DockerEngine、DockerCompose和网络环境,通过配置docker-compose.yml文件,可以定义和运行多容器应用,感兴趣的朋友一起看看吧
    2025-02-02

最新评论