2016-10-17 11 views
1

に対処YML静的IPを構成する:ドッカーは、私は、このようなドッキングウィンドウ-compose.yml(ここではない完全なリストを)持って

version: '2' 

services: 

    nginx: 
    build: ./nginx/ 
    ports: 
     - 8080:80 
    links: 
     - php 
    volumes_from: 
     - app 
    networks: 
     app_subnet: 
     ipv4_address: 172.16.1.3 

    php: 
    build: ./php/ 
    expose: 
     - 9000 
    volumes_from: 
     - app 
    networks: 
     app_subnet: 
     ipv4_address: 172.16.1.4 

    networks: 
     app_subnet: 
     driver: bridge 
     ipam: 
     config: 
      - subnet: 172.16.1.0/24 
      gateway: 172.16.1.1 

docker-compose up後、私は、このようなエラーを得た:

User specified IP address is supported only when connecting to networks with user configured subnets

だから私は」サブネットの作成docker network create --gateway 172.16.1.1 --subnet 172.16.1.0/24 app_subnet

docker-composeがdev_app_subnetという名前のサブネットを即座に作成するため、これは問題を解決しません。私のサブネットは使用されていません - 私は同じエラーが発生しています。 これを行う主な目的は、nginxサービスに静的IPを割り当てることです - etc/hostsファイルから自分のプロジェクトWeb URLを開きます。

答えて

2

[解答]解決策が見つかりました。ネットワークを指しているとき、私たちはそのネットワークを構成伝える「外部」フラグを使用する必要があり、既に作成されており、外部に取られるべきである(それ以外の場合は、プロジェクトの接頭辞でその場で作成されます):

networks: 
    app_subnet: 
    external: true 

だから、それ以降

docker network create --gateway 172.16.1.1 --subnet 172.16.1.0/24 app_subnet 
+0

ドッカーの作成ymlファイル 'version: '3' ' –

0

あなたは群れのクラスタを展開するドッキングウィンドウスタック展開を使用している場合は具体的には:サブネットを作成する必要がありますその前にドッキングウィンドウ-コンは、既存のapp_subnet にコンテナを添付します。デフォルトとして使用してください

networks: default: external: name: etl_subnet

:としてドッキングウィンドウ-compose.ymlで

docker network create --gateway 172.16.1.1 --subnet 172.16.1.0/24 --scope swarm app_subnet

、あなたが外部ネットワークを指定する必要があります。そして、あなたは「群れ」として、サブネットの範囲を指定する必要があります。

関連する問題