docker下安装dnsmasq并配置

本文详细介绍了如何使用Docker容器安装并配置DNSmasq服务。从下载镜像到配置DNS服务,包括解决Ubuntu系统中可能遇到的问题,如端口冲突和网络配置。此外,还提供了如何设置自定义DNS域名解析规则的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一次写博客,仅仅只是为了记录自己的学习历程,总结下学习的知识,也方便以后的使用和操作。文章是在借鉴别的的博客上写的,有些操作是一样的,只是添加了些自己的使用方法,在文末会将博客源贴上,话不多说,直奔主题。。。。。。。
1.容器安装
通过docker下载andyshinn/dnsmasq镜像,版本号2.75。

docker run -d -p 53:53/tcp -p 53:53/udp --cap-add=NET_ADMIN --name dns-server andyshinn/dnsmasq:2.75

如果docker没有加入用户组的话,使用ubuntu系统的就要在指令前加上sudo。
镜像pull后会出现下图的的提示,是因为ubuntu系统默认安装dnsmasq-base服务。
在这里插入图片描述这里提示53端口已经被占用。查看本机可以将占用53端口的进程直接kill掉。我先使用的进程kill,但是kill一个进程,立马又被另一个进程占用。所以直接通过指令关闭这个服务。

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop
sudo rm /etc/resolv.conf

先关闭服务,然后删除resolv.conf文件。再次通过第一条指令pull镜像时会出现如下情况:
在这里插入图片描述
通过docker rm ID指令将占用的容器移除,再次pull镜像即可。在这个里ID是个形参,指的是容器的ID。
通过docker ps指令查看运行容器。
在这里插入图片描述
2.DNS服务配置
进入容器

docker exec -it dns-server /bin/sh

先要配置真正dns服务器地址,在/etc 目录下创建resolv.dnsmasq文件,

vi /etc/resolv.dnsmasq

配置内容:

server=114.114.114.114
server=8.8.8.8

制定DNS服务地址,一个是国内的,一个是google的。
配置自己的DNS域名解析规则,在etc目录下创建dnsmasq.hosts文件,

vi /etc/dnsmasq.hosts

这个文件的内容就要我们自己要定义的DNS域名解析规则,如www.haobaba.com 对应192.168.0.140,则在文件里添加如下内容:

192.168.0.140 www.haobaba.com

最后在etc下的dnsmasq.conf配置文件内制定自定义的配置文件。

vi /etc/dnsmasq.conf

打开这个文件,里面有很多注释内容,不用管它,直接在文件最后添加如下内容即可:

resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasq.hosts

保存文件,退出容器,然后重启容器

docker restart dns-server

通过nslookup www.haobaba.com查看域名解析是否成功。
在这里插入图片描述
注意
关掉了ubuntu自带的systemd-resolved 服务,而且删除了/etc/resolv.conf文件,但是每次虚拟机重启之后,系统会自动生成resolv.conf 文件,会导致系统会解析不了外部域名而上不了网。可以通过编辑/etc/resolv.conf文件且给该文件上锁。

sudo vi /etc/resolv.conf

添加:nameserver 虚拟机dns服务的地址
然后再上锁:

sudo chattr +i /etc/resolv.conf

解锁是:

sudo chattr -i /etc/resolv.conf

虚拟机的虚拟网络模式应该设置外桥接模式。
相关阅读转自:
https://www.linuxidc.com/Linux/2016-08/134538.htm
https://blog.youkuaiyun.com/yanghua1012/article/details/80555487

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值