为什么docker-compose中定义的服务/主机名称无法parsing

从另一个容器访问容器时遇到问题。 我的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 -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' 

根据文件,承包商必须可以通过被定义的名字(例如领事)进入