无法解析docker compose中定义的服务/主机名的原因
我从另一个容器访问容器时遇到问题。我的docker-compose.yml文件是:无法解析docker compose中定义的服务/主机名的原因,docker,docker-compose,Docker,Docker Compose,我从另一个容器访问容器时遇到问题。我的docker-compose.yml文件是: version: '2' services: consul: image: "consul" hostname: "consul" command: "agent -server -client=0.0.0.0 -bind=10.30.1.134 -retry-join=10.30.1.97 -retry-join=10.30.1.42 -bootstrap-expect=3
version: '2'
services:
consul:
image: "consul"
hostname: "consul"
command: "agent -server -client=0.0.0.0 -bind=10.30.1.134 -retry-join=10.30.1.97 -retry-join=10.30.1.42 -bootstrap-expect=3 -ui"
ports:
- "8400:8400"
- "8500:8500"
- "8300:8300"
- "8301:8301"
- "8302:8302"
- "8600:53/udp"
volumes:
- /data/consul:/consul/data
network_mode: host
vault:
depends_on:
- consul
image: "vault"
hostname: "vault"
links:
- consul
environment:
VAULT_ADDR: http://127.0.0.1:8200
ports:
- "8200:8200"
- "8201:8201"
volumes:
- ./tools/wait-for-it.sh:/wait-for-it.sh
- ./config/vault:/config
- ./config/vault/policies:/policies
entrypoint: /wait-for-it.sh -t 200 -h consul -p 8500 -s -- vault server -config=/config/with-consul.hcl
当我做docker撰写时,我会看到错误
vault_1 | nc: bad address 'consul'
而且我无法ping该服务:
root@ip-10-30-1-134:~# docker run vault ping consul
ping: bad address 'consul'
根据文件规定,承包商必须可以通过定义的名称访问,即CONSOR您能否验证CONSOR启动并成功运行?是CONSOR启动并加入群集-我拥有CONSOR群集2017/07/12 07:33:10[信息]代理:加入已完成。与2个初始代理同步我刚刚测试过,如果我在vault容器中添加“172.18.0.1 Consor”,那么所有工作都正常。现在的问题是为什么它在docker-compose.ymlTo中不起作用要测试dns,请执行以下操作:
docker run--rm--net container:project\u vault\u 1 nicolaka/netshoot drill Consor@127.0.0.11
确保用docker compose显示的第一个vault容器的实际容器名替换project\u vault\u 1
。这将创建一个与vault容器共享名称空间的容器,以便您可以测试其网络环境。127.0.0.11 dns服务器是docker运行的内部dns服务器。我注意到你为领事指定了一个链接。您不需要使用链接。您使用的是什么版本的docker compose?docker psd95ff11519a4 vault”/wait-it.sh-t2“大约一分钟前,大约一分钟前上升到0.0.0.0:8200-8201->8200-8201/tcp cault_vault_1 9dceb1bc31c7顾问“docker entrypoint.sh”大约一分钟前起来大约一分钟考尔领事1root@ip-10-30-1-134:~/cault#docker exec d95ff11519a4 dig@127.0.0.11 consur rpc错误:code=2 desc=containerd:container not started
您能验证consur启动并成功运行吗?是的consur启动并加入集群-我有consur群集2017/07/12 07:33:10[信息]代理:加入已完成。与2个初始代理同步我刚刚测试过,如果我在vault容器中添加“172.18.0.1 Consor”,那么所有工作都正常。现在的问题是为什么它在docker-compose.ymlTo中不起作用要测试dns,请执行以下操作:docker run--rm--net container:project\u vault\u 1 nicolaka/netshoot drill Consor@127.0.0.11
确保用docker compose显示的第一个vault容器的实际容器名替换project\u vault\u 1
。这将创建一个与vault容器共享名称空间的容器,以便您可以测试其网络环境。127.0.0.11 dns服务器是docker运行的内部dns服务器。我注意到你为领事指定了一个链接。您不需要使用链接。您使用的是什么版本的docker compose?docker psd95ff11519a4 vault”/wait-it.sh-t2“大约一分钟前,大约一分钟前上升到0.0.0.0:8200-8201->8200-8201/tcp cault_vault_1 9dceb1bc31c7顾问“docker entrypoint.sh”大约一分钟前起来大约一分钟考尔领事1root@ip-10-30-1-134:~/cault#docker exec d95ff11519a4 dig@127.0.0.11领事rpc错误:代码=2描述=containerd:容器未启动