docker – 组成错误,地址无效

我想使用弹性的docker-elk,然后我克隆了弹性的github代码。 我想为每个容器使用一个特定的ip,所以我为每个容器定义一个特定的ip,当我运行docker-compose up ,我遇到了错误

 ERROR: for elasticsearch Cannot start service elasticsearch: Invalid address 172.18.1.3: It does not belong to any of this network's subnets ERROR: Encountered errors while bringing up the project. 

它没有显示任何networking的子网,但我定义了子网,并像这样docker-compose.yml

 version: '2' services: elasticsearch: build: elasticsearch/ ports: - "9200:9200" - "9300:9300" environment: ES_JAVA_OPTS: "-Xmx256m -Xms256m" networks: elk: ipv4_address: 172.18.1.3 logstash: build: logstash/ ports: - "5000:5000" environment: LS_JAVA_OPTS: "-Xmx256m -Xms256m" networks: elk: ipv4_address: 172.18.1.4 depends_on: - elasticsearch kibana: build: kibana/ ports: - "5601:5601" networks: elk: ipv4_address: 172.18.1.5 depends_on: - elasticsearch networks: elk: driver: bridge ipam: config: - subnet: 172.18.1.0/24 

docker version

 Client: Version: 17.06.0-ce API version: 1.30 Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:20:36 2017 OS/Arch: linux/amd64 Server: Version: 17.06.0-ce API version: 1.30 (minimum version 1.12) Go version: go1.8.3 Git commit: 02c1d87 Built: Fri Jun 23 21:21:56 2017 OS/Arch: linux/amd64 Experimental: false 

根据撰写文档 , ipam块必须定义子网范围和网关。 所以只需更新你的:

 ipam: config: - driver: default subnet: 172.18.1.0/24 gateway: 172.18.1.1