linux – docker-compose在添加veth(虚拟接口)桥接docker0时失败
问题:
这是我的docker-compose.yaml: 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: FROM logstash:latest LABEL maintainer1.name="anon" maintainer1.email="anon@mail.com" maintainer2.name="myname" maintainer2.email="myname@somemail.com" 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"] 这用于几天前建立就好,但是目前我收到以下错误消息: [root@somemachine 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 错误:服务“logstash”无法构建:无法在网桥上创建端点focused_almeida:添加接口veth0491201以桥接docker0失败:操作不受支持 所以似乎(1)docker-compose正在为logstash服务而不是elkstack_logstash_1分配一个随机生成的名称,大概是因为compose没有完全通过. 调查: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 885b0429b3a4 6dd78ac216f2 "/bin/sh -c '/opt/log" 18 minutes ago Created focused_almeida 建模后的码头网络ls: 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": {} } ] 路线-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 故障排除线索 > docker –version:Docker版本1.10.2,构建c3959b1
>我能够在机器上构建另一堆服务,这让我相信它是与Docker相关或与docker-compose相关的缺陷,无论是在应用程序本身还是在我的配置中. uname -a:Linux somemachine 3.10.0-327.10.1.el7.x86_64#1 SMP Tue 2月16日17:03:50 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux 相关信息&问题: 解决方法
您的问题似乎与您的系统配置有关.
请问,您是否可以尝试手动添加,使用unix命令brctl进入网桥? 命令应该是: brctl addif veth0491201 docker0 这是脚本用于启动虚拟机的VM所执行的命令. 我怀疑你的系统上的veth类型不兼容,你必须知道原因.可能是您的系统中有关桥接软件部分的错误. 对于s?re,您的问题与您的IP设置无关. 您可以尝试通过测试不同的内核版本来升级或降级内核. 没有关于命令期间究竟发生了什么的更多细节 这将返回相同的“不支持操作”错误消息,但通过检查两个接口的所有内容,您可能会发现,“不支持操作”(错误的类型接口)或内核错误(良好类型)的一个很好的理由接口). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |