Docker容器更改默认DNS服务器

时间:2019-03-17 21:21:52

标签: docker dnsmasq

我正在学习使用Docker容器,并尝试了我认为简单的练习,但是遇到了问题。我想使用一个容器来更改机器使用的默认DNS服务器。
所以当我说

>>  host facebook.com 

结果应与

相同
>> host facebook.com _myserverIP_

所以我环顾四周,在Docker集线器上找到了几张图像,并基于这些图像制作了非常简单的Dockerfile:

FROM alpine:latest
RUN apk --no-cache add dnsmasq 
COPY dnsmasq.conf /etc/dsnmasq.conf
EXPOSE 53/tcp 53/udp
VOLUME ["/etc/dnsmasq"]
CMD ["dnsmasq"]

在dnsmasq.conf中,我输入:

log-queries
no-resolv
server= _myserverIP_

我构建并运行:

docker build -t dns .
docker run --name dns3 -d -p 53:53/udp --cap-add=NET_ADMIN dns

这给了我2c3f046593c5d6e664d202e78d92172c75f71b95c45a9ea307af49bd1e2d5125

但是当我尝试查看哪些容器正在运行时,我发现该容器甚至没有在运行,因此无法进行下一步检查其是否正常工作。

我显然缺少一些基本知识,但不知道是什么。

1 个答案:

答案 0 :(得分:1)

您的系统将查找/etc/resolv.conf,以确定要使用的dns服务器。使用本指南来确定dnsmasq如何使用/etc/resolv.conf https://wiki.debian.org/HowTo/dnsmasq

我怀疑您也需要安装resolv.conf。