linux – docker-compose在添加veth(虚拟接口)桥接docker0时失败

linux – docker-compose在添加veth(虚拟接口)桥接docker0时失败,第1张

概述问题: 这是我的docker-compose.yaml: version: '2'services: elasticsearch: image: 'elasticsearch:latest' ports: - "9200:9200" logstash: build: './logstash_image' 问题:
这是我的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:latestLABEL 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-log4jcopY logstash.conf /etc/logstash/conf.d/logstash.confENTRYPOINT ["logstash","-f","/etc/logstash/conf.d/logstash.conf","--deBUG"]

这用于几天前建立就好,但是目前我收到以下错误消息:

[root@somemachine elk_stack]# docker-compose up -dCreating network "elkstack_default" with the default driverBuilding logstashStep 1 : FROM logstash:latest ---> 1ca34df702f8Step 2 : LABEL maintainer1.name ... ---> Using cache ---> 6dd78ac216f2Step 3 : RUN /opt/logstash/bin/logstash-plugin install logstash-input-log4j2-logstash2 logstash-output-syslog ---> Running in 885b0429b3a4ERROR: 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没有完全通过.
(2)veth0491201由于某种原因无法连接到网桥docker0,因此我无法从容器内到达互联网,因为它没有通过docker0连接.

调查:
在撰写之后的docker ps -a:

CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                        nameS885b0429b3a4        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 tableDestination     Gateway         Genmask         Flags Metric Ref    Use Iface0.0.0.0         10.0.120.1      0.0.0.0         UG    100    0        0 docker010.0.120.0      0.0.0.0         255.255.255.0   U     100    0        0 docker0172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-83e64c848669172.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-compose –version:docker-compose版本1.8.0,build f3628c7
Docker中的一些网络错误?
>我正在执行此 *** 作的计算机最近对其网络,防火墙等进行了一些配置更改.
我认为它使用172.18.0.0用于其他东西,所以当Docker尝试使用该路由时它会被阻止.
如何排除故障或确定机器网络设置是否存在问题?
>继续(2)中提出的观点,我试图建立一个docker-compose,其中明确定义了网络,这似乎也不起作用:

06007

>我能够在机器上构建另一堆服务,这让我相信它是与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
cat / etc / centos-release:CentOS linux发行版7.2.1511(核心版)

相关信息&问题:
  – 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

解决方法 您的问题似乎与您的系统配置有关.

请问,您是否可以尝试手动添加,使用unix命令brctl进入网桥?

命令应该是:

brctl addif veth0491201 docker0

这是脚本用于启动虚拟机的VM所执行的命令.
通过故障排除该步骤可以解释原因.

我怀疑你的系统上的veth类型不兼容,你必须知道原因.可能是您的系统中有关桥接软件部分的错误.

对于sûre,您的问题与您的IP设置无关.

您可以尝试通过测试不同的内核版本来升级或降级内核.

没有关于命令期间究竟发生了什么的更多细节
“brctl addif veth0491201 docker0”我不能说更多的事情.

这将返回相同的“不支持 *** 作”错误消息,但通过检查两个接口的所有内容,您可能会发现,“不支持 *** 作”(错误的类型接口)或内核错误(良好类型)的一个很好的理由接口).

总结

以上是内存溢出为你收集整理的linux – docker-compose在添加veth(虚拟接口)桥接docker0时失败全部内容,希望文章能够帮你解决linux – docker-compose在添加veth(虚拟接口)桥接docker0时失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1029686.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存