docker-compose多网络专用网络和互联网

时间:2018-08-19 08:45:53

标签: docker docker-compose

我需要我的容器(本地grpc_alpine)可以在连接到内部网络时访问Internet。我已经尝试了以下yaml文件:

version: '2'
services:
  gr1:
    image: grpc_alpine
    hostname: gr1
    container_name: gr1
    privileged: true
    stdin_open: true
    tty: true
    volumes:
      - "${PWD}/assets/grpc:/etc/grpc"
    networks:
      - default
      - mynet:
          ipv4_address: "10.10.10.11"
    environment:
      - DEFAULT_GATEWAY=10.10.10.254


networks:

  mynet:
    ipam:
      config:
          - subnet: 10.10.10.0/24
            gateway: 10.10.10.254

但是抛出了这个问题:

  

compose.config.config.find:使用配置文件:   ./docker-compose.yml错误:compose.cli.main.main:撰写文件   './docker-compose.yml'无效,因为:services.gr1.networks   包含{“ mynet”:{“ ipv4_address”:“ 10.10.10.11”}},这是   无效的类型,应为字符串

1 个答案:

答案 0 :(得分:1)

您的yaml配置有一个小问题。 networks中的services选项要求使用地图而不是列表。试试这个:

version: '2'
services:
  gr1:
    image: grpc_alpine
    hostname: gr1
    container_name: gr1
    privileged: true
    stdin_open: true
    tty: true
    volumes:
      - "${PWD}/assets/grpc:/etc/grpc"
    networks:
      default:
      mynet:
        ipv4_address: "10.10.10.11"
    environment:
      - DEFAULT_GATEWAY=10.10.10.254

networks:
  mynet:
    ipam:
      config:
        - subnet: 10.10.10.0/24
          gateway: 10.10.10.254