我正在学习与Docker容器一起工作,并且我尝试了我认为是一个简单的练习,但会遇到问题。我想使用一个容器来更改我的计算机使用的默认DNS服务器。
所以当我说
>> host facebook.com
结果应与
相同>> host facebook.com _myserverIP_
所以我环顾四周,在Docker Hub上找到了几张图像,并基于这些图像,使这个非常简单的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
但是,当我尝试查看哪些容器正在运行时,我会发现这个容器甚至不在运行,因此我无法执行下一步检查它是否正常工作。
我显然缺少基本的东西,但无法弄清楚。
您的系统将在/etc/resolv.conf
中查看以确定要使用的DNS服务器。使用本指南确定DNSMASQ如何使用/etc/resolv.conf
https://wiki.debian.org/howto/dnsmasq
我怀疑您还需要安装resolv.conf。