【发布时间】:2021-11-18 20:45:54
【问题描述】:
这是我的 docker-compose.yml:
version: "3.0"
services:
control_node:
hostname: controlnode
container_name: controlnode
build: ./control_node/
command: tail -F anything
privileged: true
volumes:
- ${CONTROL_NODE_SSH}:/home/ansible/.ssh
- ${SHARED_FOLDER}:/shared
networks:
labnet.io:
ipv4_address: 10.10.0.2
ubuntu-a:
hostname: ubuntu-a
container_name: ubuntu-a
build: ./ubuntu/
command: tail -F anything
ports:
- ${UBUNTU_A_WEBSERVER_PORT}:80
privileged: true
volumes:
- ${UBUNTU_A_SSH}:/home/ansible/.ssh
- ${SHARED_FOLDER}/shared:/shared
networks:
labnet.io:
ipv4_address: 10.10.0.3
ubuntu-b:
hostname: ubuntu-b
container_name: ubuntu-b
build: ./ubuntu/
command: tail -F anything
ports:
- ${UBUNTU_B_APPSERVER_PORT}:8080
privileged: true
volumes:
- ${UBUNTU_B_SSH}:/home/ansible/.ssh
- ${SHARED_FOLDER}/shared:/shared
networks:
labnet.io:
ipv4_address: 10.10.0.4
ubuntu-c:
hostname: ubuntu-c
container_name: ubuntu-c
build: ./ubuntu/
command: tail -F anything
ports:
- ${UBUNTU_C_WEBSERVER_PORT}:80
privileged: true
volumes:
- ${UBUNTU_C_SSH}:/home/ansible/.ssh
- ${SHARED_FOLDER}/shared:/shared
networks:
labnet.io:
ipv4_address: 10.10.0.5
ubuntu-d:
hostname: ubuntu-d
container_name: ubuntu-d
build: ./ubuntu/
command: tail -F anything
ports:
- ${UBUNTU_D_APPSERVER_PORT}:8080
privileged: true
volumes:
- ${UBUNTU_D_SSH}:/home/ansible/.ssh
- ${SHARED_FOLDER}/shared:/shared
networks:
labnet.io:
ipv4_address: 10.10.0.6
networks:
labnet.io:
name: labnet.io
driver: bridge
ipam:
config:
- subnet: 10.10.0.0/16
gateway: 10.10.0.1
当我运行docker-compose up -d 时,我得到:
错误:Compose 文件“./docker-compose.yml”无效,因为:
networks.labnet.io.ipam.config 值 不允许附加属性(“网关”是意外的)
networks.labnet.io 值 不允许附加属性('name' 是意外的)
【问题讨论】:
-
来自 docker-compose v3 上的文档:“其他 IPAM 配置,例如网关,目前仅适用于版本 2。”
-
解决此问题的最简单方法是删除文件中的所有
networks:块。撰写将create a network nameddefaultand assign IP addresses for you。同样,您通常不需要设置hostname:或container_name:,通常可以不设置command:以使用Dockerfile 中的CMD。
标签: docker docker-compose dockerfile