2016-10-19 9 views
4

問題 docker0埋めるためのveth(仮想インターフェイス)を追加することで失敗します。これは、構築するために使用ドッキングウィンドウ-コンが

FROM logstash:latest 

LABEL maintainer1.name="anon" \ 
     maintainer1.email="[email protected]" \ 
     maintainer2.name="myname" \ 
     maintainer2.email="[email protected]" 

RUN /opt/logstash/bin/logstash-plugin install logstash-input-log4j2-logstash2 logstash-output-syslog 
# FIX: use `logstash-input-log4j2` instead of `logstash-input-log4j2-logstash2`? 
# other plugins: logstash-input-http, logstash-input-log4j 
COPY logstash.conf /etc/logstash/conf.d/logstash.conf 

ENTRYPOINT ["logstash","-f","/etc/logstash/conf.d/logstash.conf", "--debug"] 

version: '2' 

services: 
    elasticsearch: 
     image: 'elasticsearch:latest' 
     ports: 
      - "9200:9200" 

    logstash: 
     build: './logstash_image' 
     links: 
      - elasticsearch 
     ports: 
      - "5000:5000" 
      - "5001:5001" 
      - "5201:5201" 
      - "5202:5202" 
      - "5203:5203" 

    kibana: 
     image: 'kibana:latest' 
     ports: 
      - '5601:5601' 
     links: 
      - elasticsearch 
     volumes: 
      - ./kibana.yml:/opt/kibana/config/kibana.yml 

そして、ここでは私のDockerfileです:
をここに私のdocker-compose.yamlです数日前にうまくいきましたが、現在、次のエラーメッセージが表示されています。

[[email protected] elk_stack]# docker-compose up -d 
Creating network "elkstack_default" with the default driver 
Building logstash 
Step 1 : FROM logstash:latest 
---> 1ca34df702f8 
Step 2 : LABEL maintainer1.name ... 
---> Using cache 
---> 6dd78ac216f2 
Step 3 : RUN /opt/logstash/bin/logstash-plugin install logstash-input-log4j2-logstash2 logstash-output-syslog 
---> Running in 885b0429b3a4 
ERROR: Service 'logstash' failed to build: failed to create endpoint focused_almeida on network bridge: adding interface veth0491201 to bridge docker0 failed: operation not supported 

ERROR:サービス「logstash」の構築に失敗しました:ネットワークブリッジ上のエンドポイントfocused_almeidaの作成に失敗しました:失敗したdocker0埋めるためのインタフェースveth0491201を追加:操作が

をサポートしていないので、それは、(1)ドッカ - コンのように思えますおそらく構成が完全に進まなかったために、elkstack_logstash_1の代わりにランダムに生成された名前をlogstashサービスに割り当てています。
veth0491201は何らかの理由でブリッジdocker0に接続できません。このため、コンテナ内からインターネットにアクセスすることはできません。docker0に接続されていません。

調査
docker ps -aコン後:

NETWORK ID   NAME       DRIVER    
23bcc8c01ad4  bridge      bridge    
4aea66903c6b  none       null     
67cb26c508d9  host       host     
9fc4a42bbcf6  elkstack_default    bridge 

docker network inspect elkstack_default

[ 
    { 
     "Name": "elkstack_default", 
     "Id": "9fc4a42bbcf6800889f8e9bc71ab394ebf6f97b21e0ce2345253b055d17138aa", 
     "Scope": "local", 
     "Driver": "bridge", 
     "IPAM": { 
      "Driver": "default", 
      "Options": null, 
      "Config": [ 
       { 
        "Subnet": "172.19.0.0/16", 
        "Gateway": "172.19.0.1/16" 
       } 
      ] 
     }, 
     "Containers": {}, 
     "Options": {} 
    } 
] 
コン後

CONTAINER ID  IMAGE      COMMAND     CREATED    STATUS    PORTS          NAMES 
885b0429b3a4  6dd78ac216f2    "/bin/sh -c '/opt/log" 18 minutes ago  Created               focused_almeida 

route -n

Kernel IP routing table 
Destination  Gateway   Genmask   Flags Metric Ref Use Iface 
0.0.0.0   10.0.120.1  0.0.0.0   UG 100 0  0 docker0 
10.0.120.0  0.0.0.0   255.255.255.0 U  100 0  0 docker0 
172.17.0.0  0.0.0.0   255.255.0.0  U  0  0  0 br-83e64c848669 
172.19.0.0  0.0.0.0   255.255.0.0  U  0  0  0 br-9fc4a42bbcf6 

トラブルシューティングをリード:

  1. docker --version:ドッカーバージョン1.10.2、c3959b1
    docker-compose --version構築:ドッカ・コンバージョン1.8.0を、f3628c7
    一部のネットワークを構築ドッカーのバグ?私はそれが何か他のもののために172.18.0.0を使用していますので、ドッカーは、それがブロックされるそのルートを使用しようとしたときだと思う私はこれをやっている時にマシンが最近
    ファイアウォールなど、そのネットワークに関しては、いくつかの設定の変更を行っている
  2. マシンのネットワーク設定に問題があるかどうかをトラブルシューティングしたり、判断したりするにはどうすればよいですか?
networks: 
    net: 
     driver: bridge 
     ipam: 
      driver: default 
      config: 
      - subnet: 172.30.0.0/16 
       ip_range: 172.30.5.0/24 
  • 私は」:
  • (2)で行われた時点でのフォローアップ、私は、これはどちらか動作していないようでした、ネットワークが明示的に定義されてドッカ - コンを作ってみましたマシン上で別のサービススタックをドッキングすることができれば、それはアプリケーション自体または私の設定のどちらかでDocker関連またはドッカーの作成に関連する欠陥であると信じることができます。
  • ローカルマシンでこれを動作させることができます。これは、問題が発生しているリモートマシンの問題であると考えています。

    のuname -a:Linux somemachine 3.10.0-327.10.1.el7.x86_64 #1 SMP Tue Feb 16 17:03:50 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
    猫の/ etc/CentOSのリリース:CentOS Linux release 7.2.1511 (Core)

関連情報&問題:
- http://54.71.194.30:4017/articles/networking/#how-docker-networks-a-container
- https://github.com/docker/docker/issues/23047
- https://github.com/docker/docker/issues/15341

+0

マシンのネットワークインターフェイスに問題があると思われます。 'docker0'ブリッジは' eth0'の代わりにデフォルトのネットワークインタフェースとして設定されました。 –

答えて

1

マシンのネットワークインターフェイスに問題がありました。
eth0がデフォルトとして設定されておらず、代わりにdocker0がデフォルトインターフェイスでエラーを引き起こしていました。

はもっとここで読む:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-networkscripts-interfaces.html
この問題を解決するには、変更はネットワークインターフェイスが設定されている方法を指定/etc/sysconfig/network-scripts/に含まれるファイルに加えられました。

1

あなたの問題は、あなたのシステム構成と関連しているように見えます。

unixコマンドbrctlでvethをブリッジに手動で追加しようとしますか?

コマンドは次のようになります。

brctlはaddif veth0491201 docker0

これはfaillingされ、あなたのVMを起動するためのスクリプトによって行わコマンドです。 その手順をトラブルシューティングすることにより、その理由が説明される場合があります。

あなたのシステムにはvethのタイプが互換性がないと思われます。その理由を知る必要があります。ブリッジソフトウェアに関するバグかもしれません。

あなたの問題はあなたのIP設定にリンクされていません。

異なるカーネルリリースをテストして、カーネルをアップグレードまたはダウングレードすることができます。

コマンド中に正確に何が起こるかについての詳細はありません "brctl addif veth0491201 docker0"私はもっと多くのことを言いません。

「操作がサポートされていません」というエラーメッセージが返されますが、両方のインターフェイスについてすべてをチェックすると、「操作がサポートされていません」(間違ったタイプのインターフェイス)またはカーネルのバグ(良好なタイプのインターフェース)。

+0

私の質問の下でコメントに述べたように、それはマシン上のネットワークインターフェイスの問題でした。 eth0がデフォルトとして設定されていない代わりに、docker0がエラーの原因となるデフォルトのインターフェイスです。詳細はこちらをご覧ください:https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/3/html/Reference_Guide/s1-networkscripts-interfaces.html この問題を解決するには、 '/ etc/sysconfig/network-scripts /'はネットワークインタフェースの設定方法を指定します。 –