首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker0在将veth (虚拟接口)添加到桥接docker0时失败

docker0在将veth (虚拟接口)添加到桥接docker0时失败
EN

Stack Overflow用户
提问于 2016-10-19 09:31:15
回答 2查看 3.8K关注 0票数 7

问题

这是我的docker-compose.yaml

代码语言:javascript
复制
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

代码语言:javascript
复制
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"]

这在几天前就已经很好了,但是目前我收到了以下错误消息:

代码语言:javascript
复制
[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是为logstash服务分配一个随机生成的名称,而不是elkstack_logstash_1,大概是因为编写过程没有完全完成。

(2)由于某些原因,veth0491201无法连接到桥接docker0,因此无法从容器内连接到互联网,因为它不是通过docker0连接的。

Investigation

作曲后的docker ps -a

代码语言:javascript
复制
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                        NAMES
885b0429b3a4        6dd78ac216f2                "/bin/sh -c '/opt/log"   18 minutes ago      Created                                                          focused_almeida

作曲后的docker network ls

代码语言:javascript
复制
NETWORK ID          NAME                          DRIVER            
23bcc8c01ad4        bridge                        bridge              
4aea66903c6b        none                          null                
67cb26c508d9        host                          host                
9fc4a42bbcf6        elkstack_default              bridge  

docker network inspect elkstack_default

代码语言:javascript
复制
[
    {
        "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": {}
    }
]

route -n

代码语言:javascript
复制
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:DockerVersion1.10.2,构建c3959b1 docker-compose --version:docker-编写版本1.8.0,构建f3628c7 码头的网络漏洞?
  2. 我正在做这件事的机器最近对它的网络、防火墙等做了一些配置更改。 --我认为它在使用来做其他事情,所以当Docker尝试使用该路由时,它会被阻塞。,我如何才能排除或判断机器网络设置是否有问题?
  3. 按照(2)中提出的要点,我试图在网络明确定义的情况下构建一个对接者--编写,这似乎也不起作用:

网络: net: driver: bridge ipam: driver: default config:- subnet: 172.30.0.0/16 ip_range: 172.30.5.0/24

  • 我能够在机器上构建另一个服务堆栈,这使我相信这是一个与码头相关的或与码头相关的缺陷,无论是在应用程序本身还是在我的配置中。
  • 我能够让它在我的本地机器上工作,这让我相信这是远程机器的一个问题,在那里我有issues.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 cat /etc/centos-发布:CentOS Linux release 7.2.1511 (Core)

相关信息与问题:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-19 09:24:00

这是机器上网络接口的一个问题。

eth0没有设置为默认值,相反,docker0是导致错误的默认接口

在这里阅读更多信息:Guide/s1-networkscripts-interfaces.html

为了解决此问题,对/etc/sysconfig/network-scripts/中包含的文件进行了更改,这些文件指定如何配置网络接口。

票数 1
EN

Stack Overflow用户

发布于 2016-10-27 10:42:57

您的问题似乎与系统配置有关。

请用unix命令brctl手动添加到桥中,好吗?

该命令应是:

brctl外加剂veth0491201 docker0

这是脚本执行的启动VM的命令。通过故障排除,该步骤可以解释原因。

我怀疑veth的类型在你的系统中是不兼容的,你必须知道原因。可能是您的系统中有关桥软件部分的一个bug。

对于S,您的问题与您的ip设置没有关联。

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

如果没有更多关于在命令"brctl addif veth0491201 docker0“期间到底发生了什么的详细信息,我就不能说更多的事情了。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40127462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档