Tag: dnsmasq

允许docker容器中的dnsmasq的bootp

我尝试运行dnsmasq,它必须提供DHCP + BOOTP,但是当它在容器中运行时,dnsmask不会打开67 \ udp端口。 在主机系统上具有类似的configuration文件,它可以正常工作。 我运行标志-net主机和-privileged容器,但它不帮助我。 为什么dnsmasq不想将67 / udp(BOOTP服务器)打开到容器中? 我如何能够解决这个问题呢?

Docker容器中dnsmasq的奇怪行为

我有一个运行dnsmasq容器的CoreOS实例。 目前, dnsmasqconfiguration只设置为logging所有查询并以debugging模式运行,所以应该只进行caching。 当我尝试从不同的容器中使用dig , nslookup或简单地运行ping google.com我得到了Bad hostname: google.com ,我可以看到在日志查询中,多次请求,好像是重试。 如果我尝试从运行CoreOS的主机上运行相同的命令,那么在单次尝试中一切都没有问题。 我的计划是在群集中的每个CoreOS机器上运行dnsmasq ,并使其由confd支持,这样所有的服务都可以解决相应的问题。 我使用Alpine Linux作为基础映像,但是我试图在Ubuntu和Debian映像中运行这些命令,结果相同。

设置Docker Dnsmasq

我试图build立一个dockerdnsmasq容器,以便我可以让所有的docker容器查找域名而不是硬编码的IP(如果它们在同一个主机上)。 这解决了一个问题,那就是不能改变docker容器中的/ etc / hosts文件 ,这允许我通过改变dnsmasq容器引用的单个文件来一次性更新所有的容器。 看起来有人已经为我做了艰苦的工作,并创build了一个dnsmasq容器 。 不幸的是,这不是“为我工作”。 我写了一个bash脚本来启动容器,如下所示: name="dnsmasq_" timenow=$(date +%s) name="$name$timenow" sudo docker run \ -v="$(pwd)/dnsmasq.hosts:/dnsmasq.hosts" \ –name=$name \ -p='127.0.0.1:53:5353/udp' \ -d sroegner/dnsmasq 在运行之前,我创build了dnsmasq.hosts目录,并在其中插入了一个名为hosts.txt的文件,内容如下: 192.168.1.3 database.mydomain.com 不幸的是,每当我尝试从内部ping该域名: 主人 dnsmasq容器 另一个容器在同一台主机上 我总是收到ping: unknown host错误信息。 我尝试启动dnsmasq容器没有守护进程模式,所以我可以debugging它的输出,这是在下面: dnsmasq: started, version 2.59 cachesize 150 dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n DHCP TFTP conntrack IDN […]

Docker容器只能通过–net = host访问互联网

只是今天使用他们的安装指南安装docker1.10.1。 但是,除非在–net=host docker run命令中使用了–net=host ,否则我的容器都不能访问互联网。 我已经尝试过这些post的各种解决方法: http://odino.org/cannot-connect-to-the-internet-from-your-docker-containers/ 我的docker集装箱没有互联网 我不能让Docker容器访问互联网? docker集装箱不能访问互联网 没有任何工作到目前为止,除了添加运行命令 – –net=host ,但我不能build立从Dockerfile的图像,因为我不能使用–net=host命令 – –net=host 。 我运行docker network inspect bridge的设置,并注意到它使用(几乎)相同的子网和网关作为我的工作VPN。 这可能是一个问题吗? 这也可以解释为什么当我连接到我的工作VPN一些网站不加载。 这是docker network inspect bridge的结果: [ { "Name": "bridge", "Id": "6d603ebd1c437d0d1f02be8406cf362f7f36d33168e42b9883891bae99834fa9", "Scope": "local", "Driver": "bridge", "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "172.17.0.0/16", "Gateway": "172.17.0.1" } ] }, "Containers": {}, […]

Docker无法在专用networking上parsingDNS

我的机器位于专用DNS服务器的专用networking上,并且是专用于DNSparsing的专用区域。 我可以从主机上parsing这个区域的主机,但我无法从主机上运行的容器parsing它们。 主持人 : root@host:~# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.1.1 root@host:~# ping privatedomain.io PING privatedomain.io (192.168.0.101) 56(84) bytes of data. 容器 : root@container:~# cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) […]

将AWS sdks的默认端点redirect到模拟的localstack端点

我有多个Java Spring引导服务(其中大约20个)使用S3,SQS,DynamoDB等的Amazon SDK。 目前,要使用Amazon Web Service,我只需要指定我的AWS密钥和秘密。 ACCESS_AWS_KEY=<MY_KEY> ACCESS_AWS_SECRET=<MY_SECRET> 但是,我想设置离线开发环境,所以我开始dockerize我的服务,并build立一个多docker容器与我所有的服务dockerized和localstack应该被用来代替远程AWS服务,以允许完成离线开发。 docker-compose.yml看起来像这样 version: '3' services: service_1: build: ./repos/service_1 links: – service_2: – localstack service_2: build: ./repos/service_2 links: – localstack service_3: build: ./repos/service_3 links: – localstack localstack: image: localstack/localstack Amazon SDK提供AWS_REGION envvariables,但不能提供可轻松用于所有服务的端点环境variables。 我也不想在我的服务中进行代码更改以适应新的非默认端点。 我想要一个通用的解决scheme来转发这样的请求: dynamodb.eu-west-1.amazonaws.com => localstack_1:4569 s3-eu-west-1.amazonaws.com => localstack_1:4572 localstack_1是localstack的链接容器,可以被其他容器访问。 我遇到了extra_hosts:在docker -compose中,但它只是redirect到IP,没有主机名parsing。 另外请注意,我有几十个端口从4569到4582暴露在localstack中。 我曾想过在每台机器上运行一个脚本,以某种方式设置一个虚拟主机,或者将所有的传出连接从所有容器转发到一个集中的请求转发器服务,但是不知道从哪里开始。 这只会用作脱机开发环境,不会收到任何实际的stream量。

docker-compose不把主机名添加到/ etc / hosts

我正在做一个docker-composeconfiguration,它应该启动一个连接到dnsmasq容器的openvpn容器。 openvpn服务器应该自动发现dnsmasq容器并将其用作dns服务器。 发现是通过在/ etc / hosts文件中search条目“dnsmasq”来完成的。 我有以下docker-compose.yml文件: version: '2' services: data: build: ./ dnsmasq: cap_add: – NET_ADMIN hostname: dnsmasq image: <dnsmasq image> ports: – 53:53/udp restart: always openvpn: cap_add: – NET_ADMIN depends_on: – data – dnsmasq image: <openvpn image> ports: – 1194:1194/udp restart: always volumes_from: – data 我已经指定了“dnsmasq”作为dnsmasq容器的主机名,并且希望它出现在openvpn容器的“/ etc / hosts”中。 这似乎并没有发生。 这是来自openvpn容器内/ etc / […]