/etc/dnsmasq.conf RUN ech" />
您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Linux >> Docker for Mac 创建的dnsmasq容器连不上/不工作的问题

Docker for Mac 创建的dnsmasq容器连不上/不工作的问题

来源:网络整理     时间:2016/7/31 1:54:24     关键词:

关于网友提出的“ Docker for Mac 创建的dnsmasq容器连不上/不工作的问题”问题疑问,本网通过在网上对“ Docker for Mac 创建的dnsmasq容器连不上/不工作的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: Docker for Mac 创建的dnsmasq容器连不上/不工作的问题
描述:

在使用docker for mac构建了一个dnsmasq的Container, 但是发现53端口似乎无法连接, 使用dig各种超时

这是dockerfile

FROM centos:6.8

RUN yum update -y && yum install -y dnsmasq

RUN echo "listen-address=0.0.0.0" > /etc/dnsmasq.conf
RUN echo "conf-dir=/etc/dnsmasq.d" >> /etc/dnsmasq.conf
RUN echo "user=root" >> /etc/dnsmasq.conf
RUN echo "server=/a/127.0.0.1" >> /etc/dnsmasq.conf
#a供测试用

#RUN echo 'resolv-file=/etc/resolv.dnsmasq.conf' >> /etc/dnsmasq.conf
#RUN echo "nameserver 127.0.0.11" > /etc/resolv.dnsmasq.conf
#上一行出现了127.0.0.11并不是写错, 而是发现docker for mac的container的/etc/resolv.conf里面确实出现了127.0.0.11, 并且这个上面是可以解析域名的, 所以才试图这么尝试过这个配置

RUN yum install nc -y

RUN yum clean all

EXPOSE 53
EXPOSE 53/udp

#CMD ["nc", "-l",  "53"] #tcp调试
#CMD ["nc", "-l", "-u",  "53"] #udp调试

CMD ["/usr/sbin/dnsmasq", "-d"]

这是docker-compose

version: '2'

services:
    dns:
        build: ../../images/dnsmasq
        container_name: dns
        restart: always
        #env_file: ./config/.env
#        volumes:
#            - /etc/hosts:/etc/hosts
#        dns:
#            - 127.0.0.1
        ports:
            - "53:53"
            - "53:53/udp"

各种端口映射应该是没有问题的, 宿主机上运行和访问:

容器内运行和访问:


解决方案1:

经过 @有明 的提点, 这个的根本问题在于dnsmasq的配置有问题而不是docker的问题, 有以下几点:

  1. 错误的把 server=/a/127.0.0.1 当成了 address=/a/127.0.0.1

  2. dnsmasq 的 listen-address=0.0.0.0 似乎是有bug的, 必须listen到精确的网卡的IP地址或者干脆不要这行listen-address

改掉之后就可以正常工作了


以上介绍了“ Docker for Mac 创建的dnsmasq容器连不上/不工作的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3038781.html

相关图片

相关文章