【发布时间】:2017-10-31 17:43:14
【问题描述】:
我正在使用 docker-compose 命令来创建和启动我的容器。
我的 Docker 版本
docker --version
Docker version 17.09.0-ce, build afdb6d4
我的 Docker-Compose 版本
docker-compose --version
docker-compose version 1.16.1, build 6d1ac21
我使用的 .yml 文件如下所示: (请注意,我只是将其缩短以删除敏感内容)
---
services:
zookeeper:
image: "zookeeper"
server-1:
cap_add:
- "NET_ADMIN"
server-0:
cap_add:
- "NET_ADMIN"
dns:
- 8.8.8.8
- 9.9.9.9
environment:
SERVER_ID: 0
NETEM_HOSTS: ""
LOSS_VALUES: ""
MAX_RATE_VALUES: ""
DELAY_VALUES: ""
image: "cloud.mycompany.com:5000/server-0:latest"
fakedns:
image: "cloud.mycompany.com:5000/fakedns:latest"
version: "3.3"
然后我开始使用:
docker-compose --file compose.yml up -d
我的问题是这样的:
1) 容器出现后...当我进入容器时,例如在本例 server-0 中,我没有看到 /etc/resolv.conf 文件已更新为使用这些名称服务器。相反,它使用 docker 的嵌入式 dns,即 127.0.0.11
2) 我如何确保它使用我在 docker-compose 使用的文件中指定的内容
3) 我尝试使用命令执行此操作,它似乎可以工作,但我需要从 compose-file 执行此操作
docker run -p 4000:53 --dns=8.8.8.8 cloud.mycompany.com:5000/server-0:latest
4) 理想情况下,我希望它拥有容器“fakedns”的 IP 地址,以便它使用这个而不是嵌入的 @127.0.0.11
【问题讨论】:
标签: java docker dns network-programming docker-compose