我正在学习使用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
但是当我尝试查看哪些容器正在运行时,我发现该容器甚至没有在运行,因此无法进行下一步检查其是否正常工作。
我显然缺少一些基本知识,但不知道是什么。
答案 0 :(得分:1)
您的系统将查找/etc/resolv.conf
,以确定要使用的dns服务器。使用本指南来确定dnsmasq如何使用/etc/resolv.conf
https://wiki.debian.org/HowTo/dnsmasq
我怀疑您也需要安装resolv.conf。