1

ドッカーの作成ファイルに以下のネットワーク設定があります。 DOCKER_SUBNETが設定されている場合、期待どおり変数が設定されている場合、ドッカーが特定のサブネットを使用するように設定するにはどうしたらいいですか?

networks: 
    default: 
     ipam: 
      driver: default 
      config: 
       - subnet: ${DOCKER_SUBNET} 

、その変数に指定されたサブネットが使用されます。変数が設定されていない場合は、変数が空白(これは完全に妥当)なので、ERROR: Invalid subnet : invalid CIDR address:を取得します。

DOCKER_SUBNET変数が設定されていない場合、docker-composeは、ipam設定が指定されていないと通常どおりに使用可能なサブネットを選択するようにipamドライバを設定する方法はありますか?

答えて

1

ネットワークにipamの設定を指定しないと、使用可能なサブネットのみが選択されます。 Composeには、オンザフライで設定を変更する高度な機能はありません。

multiple compose filesまたはテンプレートベースのシステムのいずれかを使用して、シェル以外の言語、つまりdocker-composeコマンドを起動することができます。

洗面所独立、あなたのあなたからのネットワーク設定サービス設定

docker-compose-net-auto.yml

version: "2.1" 
networks: 
    default: 

docker-compose-net-subnet.yml

version: "2.1" 
networks: 
    default: 
    ipam: 
     driver: default 
     config: 
     - subnet: ${DOCKER_SUBNET} 

は、次にネットワーク・ファイルには、するかの選択を行うスクリプトlaunch.shを作成します。

#!/bin/sh 
if [ -z "$DOCKER_SUBNET" ]; then 
    docker-compose -f docker-compose.yml -f docker-compose-net-auto.yml up 
else 
    docker-compose -f docker-compose.yml -f docker-compose-net-subnet.yml up 
fi 
関連する問題