Moby: Resposta de erro do daemon: falha ao criar endpoint (...) na ponte de rede: falha ao adicionar o host (veth1d85371) <=> sandbox (vethbc264f6) interfaces de par: operação não suportada.

Criado em 16 out. 2016  ·  22Comentários  ·  Fonte: moby/moby

Eu tenho um docker instalado recentemente, mas quando não consigo executar contêineres

docker run --rm hello-world                                                                                                                          
docker: Error response from daemon: failed to create endpoint jolly_kare on network bridge: failed to add the host (veth1d85371) <=> sandbox (vethbc264f6) pair interfaces: operation not supported.

As informações do Docker são:

Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 1
Server Version: 1.12.2
Storage Driver: devicemapper
 Pool Name: docker-8:1-799432-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 10.74 GB
 Backing Filesystem: xfs
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 14.09 MB
 Data Space Total: 107.4 GB
 Data Space Available: 21.34 GB
 Metadata Space Used: 585.7 kB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.147 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.77 (2012-10-15)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: host bridge overlay null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options:
Kernel Version: 3.10.23-xxxx-std-ipv6-64-vps
Operating System: Ubuntu 14.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 3.854 GiB
Name: vps102867
ID: RTPT:KG2U:SH6J:5KS4:5S27:A57A:E6PV:425A:7KEF:UJKR:5WOG:FQBV
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No kernel memory limit support
Insecure Registries:
 127.0.0.0/8

Já tentei excluir /var/lib/docker/network/files/local-kv.db conforme mencionado em problemas semelhantes, sem sucesso

arenetworking

Comentários muito úteis

Não vejo nenhum problema aí. Acabei de deixar um comentário para aqueles que usam o Arch Linux para que saibam que é necessário reinicializar após atualizar o kernel.

Obrigado pelo seu esclarecimento @thaJeztah.

Todos 22 comentários

Parece que você está executando um kernel não padrão para Ubuntu 14.04. Ubuntu 14.04 vem com Kernel 3.13. Você pode tentar com um kernel padrão? É possível que faltem módulos em seu kernel necessários para que o docker funcione corretamente; você pode tentar executar este script para ver o que está faltando; https://github.com/docker/docker/blob/master/contrib/check-config.sh

Ops ... a saída do script é

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_DEVPTS_MULTIPLE_INSTANCES: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_VETH: missing
- CONFIG_BRIDGE: enabled
- CONFIG_BRIDGE_NETFILTER: enabled
- CONFIG_NF_NAT_IPV4: enabled
- CONFIG_IP_NF_FILTER: enabled
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NETFILTER_XT_MATCH_IPVS: missing
- CONFIG_IP_NF_NAT: missing
- CONFIG_NF_NAT: enabled
- CONFIG_NF_NAT_NEEDED: enabled
- CONFIG_POSIX_MQUEUE: missing

Optional Features:
- CONFIG_USER_NS: missing
- CONFIG_SECCOMP: enabled
- CONFIG_CGROUP_PIDS: missing
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_MEMCG_SWAP_ENABLED: enabled
- CONFIG_MEMCG_KMEM: missing
- CONFIG_RESOURCE_COUNTERS: enabled
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: enabled
- CONFIG_IOSCHED_CFQ: enabled
- CONFIG_CFQ_GROUP_IOSCHED: enabled
- CONFIG_CGROUP_PERF: missing
- CONFIG_CGROUP_HUGETLB: missing
- CONFIG_NET_CLS_CGROUP: enabled
- CONFIG_NETPRIO_CGROUP: missing
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: enabled
- CONFIG_IP_VS: missing
- CONFIG_IP_VS_NFCT: missing
- CONFIG_IP_VS_RR: missing
- CONFIG_EXT3_FS: enabled
- CONFIG_EXT3_FS_XATTR: enabled
- CONFIG_EXT3_FS_POSIX_ACL: enabled
- CONFIG_EXT3_FS_SECURITY: enabled
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
  - "overlay":
    - CONFIG_VXLAN: missing
      Optional (for encrypted networks):
      - CONFIG_CRYPTO: enabled
      - CONFIG_CRYPTO_AEAD: enabled
      - CONFIG_CRYPTO_GCM: missing
      - CONFIG_CRYPTO_SEQIV: missing
      - CONFIG_CRYPTO_GHASH: missing
      - CONFIG_XFRM: enabled
      - CONFIG_XFRM_USER: enabled
      - CONFIG_XFRM_ALGO: enabled
      - CONFIG_INET_ESP: enabled
      - CONFIG_INET_XFRM_MODE_TRANSPORT: enabled
  - "ipvlan":
    - CONFIG_IPVLAN: missing
  - "macvlan":
    - CONFIG_MACVLAN: missing
    - CONFIG_DUMMY: enabled
- Storage Drivers:
  - "aufs":
    - CONFIG_AUFS_FS: missing
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled
    - CONFIG_BTRFS_FS_POSIX_ACL: enabled
  - "devicemapper":
    - CONFIG_BLK_DEV_DM: enabled
    - CONFIG_DM_THIN_PROVISIONING: enabled
  - "overlay":
    - CONFIG_OVERLAY_FS: missing
  - "zfs":
    - /dev/zfs: missing
    - zfs command: missing
    - zpool command: missing

Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000

Eu me pergunto o quão seguro pode ser uma mudança de kernel em um vps de ovh não dedicado

Parece que há várias coisas faltando, talvez seja melhor entrar em contato com o suporte da ovh?

Com base no que precede, não acho que seja um bug no docker, então fecharei este problema, mas fique à vontade para continuar a discussão aqui

No meu caso, o erro aparece toda vez que atualizo meu kernel do Linux. Ele desaparece quando eu reinicio o computador.

Estou usando o Arch Linux.

Atualizar:

Uma alternativa é fazer o downgrade do kernel se a reinicialização não for viável no momento.

sudo pacman -U /var/cache/pacman/pkg/linux-$(uname -r | sed 's/-ARCH//')-x86_64.pkg.tar.xz

Créditos para @Nowaker . Veja o comentário abaixo

O Arch linux é uma versão contínua e vem com versões de pacotes "mais recentes". Por causa disso, sabe-se que o Arch quebra o docker periodicamente; por esse motivo, não enviamos pacotes para o Arch. Pode ser melhor relatar isso com o Arch linux, que mantém seus pacotes

Não vejo nenhum problema aí. Acabei de deixar um comentário para aqueles que usam o Arch Linux para que saibam que é necessário reinicializar após atualizar o kernel.

Obrigado pelo seu esclarecimento @thaJeztah.

Obrigado @whoan pela sua resposta!

@whoan Para Arch Linux, depois de atualizar o kernel, os módulos antigos do kernel serão todos excluídos (substituídos por módulos do kernel da nova versão) automaticamente. Portanto, se você não reiniciou o computador, estará executando o kernel antigo sem módulos de kernel correspondentes. A maioria dos comandos docker carregará módulos do kernel (se eles ainda não foram carregados), mas seu kernel antigo não consegue mais encontrar seus módulos. É por isso que o erro aparece sempre que você atualiza o kernel do Linux e desaparece após reiniciar o computador.

O diretório dos módulos do kernel está em / lib / modules /. Da próxima vez, antes de atualizar o kernel, faça backup do antigo diretório de módulos do kernel. Após a atualização, restaure o diretório de módulos do kernel antigo, então você não verá este erro mesmo se não reiniciar o computador.

Eu tenho o mesmo erro, mas não funcionou após a reinicialização. Portanto, eu rmo todas as imagens e contêineres com o comando docker image rm e docker rm para deletar. Então o docker funciona bem.

Eu estava tendo esse problema porque estava executando um kernel personalizado sem a opção de dispositivo de par Ethernet virtual . Portanto, caso você tenha um kernel personalizado, habilite essa opção antes de executar make . Você o encontrará em:

Device Drivers -> Network device support -> Network core driver support

Colocando aqui porque este parece ser o primeiro resultado no Google para este erro. Espero que ajude!

@whoan Uma alternativa é fazer o downgrade do kernel se reiniciar não for viável no momento. Eu seria ótimo se você pudesse editar seu comentário para que todo o conhecimento esteja em um só lugar. Obrigado :-)

sudo pacman -U /var/cache/pacman/pkg/linux-$(uname -r | sed 's/-ARCH//)'-x86_64.pkg.tar.xz

Obrigado @Nowaker por sua contribuição. Eu adicionei ao meu comentário anterior, conforme sugerido.

Obrigado @Nowaker ! Pequenos erros de digitação para futuros pesquisadores:
sudo pacman -U /var/cache/pacman/pkg/linux-$(uname -r | sed 's/-ARCH//')-x86_64.pkg.tar.xz
(observe as posições trocadas da aspa única final e parênteses)

Obrigado @morancj. Eu consertei no meu comentário anterior.

Obrigado whoan, isso foi super útil!

@tomas , você poderia ajudar a ver esse problema para mim? Eu estava executando um kernel customizado.
Aqui está o link docker não pode ser executado em armv7l

Vou tentar o seu método amanhã, você se lembra. MUITO OBRIGADO .

@tomas , Obrigado pela sua resposta acima, resolveu meu problema. Muito obrigado.

A saída do script: https://github.com/docker/docker/blob/master/contrib/check-config.sh

Vejo alguns pacotes faltando, o que devemos fazer para corrigir o erro:
falha ao criar endpoint flamboyant_tereshkova na ponte de rede: adicionar interface vethfb90d78 à ponte docker0 falhou: não foi possível encontrar ponte docker0: rota ip + net: nenhuma interface de rede

aviso: /proc/config.gz não existe, pesquisando outros caminhos para a configuração do kernel ...
info: lendo a configuração do kernel em /boot/config-4.8.0-59-generic ...

Geralmente necessário:

  • Hierarquia cgroup: montada corretamente [/ sys / fs / cgroup]
  • apparmor: habilitado e ferramentas instaladas
  • CONFIG_NAMESPACES: ativado
  • CONFIG_NET_NS: habilitado
  • CONFIG_PID_NS: habilitado
  • CONFIG_IPC_NS: habilitado
  • CONFIG_UTS_NS: habilitado
  • CONFIG_CGROUPS: ativado
  • CONFIG_CGROUP_CPUACCT: habilitado
  • CONFIG_CGROUP_DEVICE: habilitado
  • CONFIG_CGROUP_FREEZER: habilitado
  • CONFIG_CGROUP_SCHED: habilitado
  • CONFIG_CPUSETS: ativado
  • CONFIG_MEMCG: ativado
  • CONFIG_KEYS: habilitado
  • CONFIG_VETH: habilitado (como módulo)
  • CONFIG_BRIDGE: habilitado (como módulo)
  • CONFIG_BRIDGE_NETFILTER: habilitado (como módulo)
  • CONFIG_NF_NAT_IPV4: habilitado (como módulo)
  • CONFIG_IP_NF_FILTER: habilitado (como módulo)
  • CONFIG_IP_NF_TARGET_MASQUERADE: habilitado (como módulo)
  • CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: habilitado (como módulo)
  • CONFIG_NETFILTER_XT_MATCH_CONNTRACK: habilitado (como módulo)
  • CONFIG_NETFILTER_XT_MATCH_IPVS: habilitado (como módulo)
  • CONFIG_IP_NF_NAT: habilitado (como módulo)
  • CONFIG_NF_NAT: habilitado (como módulo)
  • CONFIG_NF_NAT_NEEDED: habilitado
  • CONFIG_POSIX_MQUEUE: habilitado

Recursos opcionais:

  • CONFIG_USER_NS: habilitado
  • CONFIG_SECCOMP: habilitado
  • CONFIG_CGROUP_PIDS: ativado
  • CONFIG_MEMCG_SWAP: habilitado
  • CONFIG_MEMCG_SWAP_ENABLED: ausente
    (a contabilidade de troca do cgroup não está habilitada no momento, você pode habilitá-la definindo a opção de inicialização "swapaccount = 1")
  • CONFIG_LEGACY_VSYSCALL_EMULATE: habilitado
  • CONFIG_BLK_CGROUP: habilitado
  • CONFIG_BLK_DEV_THROTTLING: habilitado
  • CONFIG_IOSCHED_CFQ: habilitado
  • CONFIG_CFQ_GROUP_IOSCHED: ativado
  • CONFIG_CGROUP_PERF: habilitado
  • CONFIG_CGROUP_HUGETLB: habilitado
  • CONFIG_NET_CLS_CGROUP: habilitado (como módulo)
  • CONFIG_CGROUP_NET_PRIO: habilitado
  • CONFIG_CFS_BANDWIDTH: habilitado
  • CONFIG_FAIR_GROUP_SCHED: ativado
  • CONFIG_RT_GROUP_SCHED: ausente
  • CONFIG_IP_NF_TARGET_REDIRECT: habilitado (como módulo)
  • CONFIG_IP_VS: habilitado (como módulo)
  • CONFIG_IP_VS_NFCT: habilitado
  • CONFIG_IP_VS_PROTO_TCP: habilitado
  • CONFIG_IP_VS_PROTO_UDP: habilitado
  • CONFIG_IP_VS_RR: habilitado (como módulo)
  • CONFIG_EXT4_FS: habilitado
  • CONFIG_EXT4_FS_POSIX_ACL: habilitado
  • CONFIG_EXT4_FS_SECURITY: habilitado
  • Drivers de rede:

    • "overlay":

    • CONFIG_VXLAN: habilitado (como módulo)

      Opcional (para redes criptografadas):



      • CONFIG_CRYPTO: ativado


      • CONFIG_CRYPTO_AEAD: habilitado


      • CONFIG_CRYPTO_GCM: habilitado (como módulo)


      • CONFIG_CRYPTO_SEQIV: ativado


      • CONFIG_CRYPTO_GHASH: habilitado (como módulo)


      • CONFIG_XFRM: habilitado


      • CONFIG_XFRM_USER: habilitado (como módulo)


      • CONFIG_XFRM_ALGO: habilitado (como módulo)


      • CONFIG_INET_ESP: habilitado (como módulo)


      • CONFIG_INET_XFRM_MODE_TRANSPORT: habilitado (como módulo)



    • "ipvlan":

    • CONFIG_IPVLAN: habilitado (como módulo)

    • "macvlan":

    • CONFIG_MACVLAN: habilitado (como módulo)

    • CONFIG_DUMMY: habilitado (como módulo)

    • "ftp, cliente tftp no contêiner":

    • CONFIG_NF_NAT_FTP: habilitado (como módulo)

    • CONFIG_NF_CONNTRACK_FTP: habilitado (como módulo)

    • CONFIG_NF_NAT_TFTP: habilitado (como módulo)

    • CONFIG_NF_CONNTRACK_TFTP: habilitado (como módulo)

  • Drivers de armazenamento:

    • "aufs":

    • CONFIG_AUFS_FS: habilitado (como módulo)

    • "btrfs":

    • CONFIG_BTRFS_FS: habilitado (como módulo)

    • CONFIG_BTRFS_FS_POSIX_ACL: habilitado

    • "devicemapper":

    • CONFIG_BLK_DEV_DM: habilitado

    • CONFIG_DM_THIN_PROVISIONING: habilitado (como módulo)

    • "overlay":

    • CONFIG_OVERLAY_FS: habilitado (como módulo)

    • "zfs":

    • / dev / zfs: ausente

    • comando zfs: ausente

    • comando zpool: ausente

Limites:

  • / proc / sys / kernel / keys / root_maxkeys: 1000000

Quem sabia? A solução era desligá-lo e ligá-lo novamente.

Parece que o Linux copiou esse truque do Windows

Devo acrescentar para outros usuários do Arch que a reinicialização no meu caso foi devido a uma atualização do sistema no mesmo dia. Parece que o docker não consegue estabelecer conexão se você atualizou o arch sem reiniciar.

O mesmo tipo de problema com o meu Raspberry PI.
Reiniciar resolveu o problema.

Esta página foi útil?
0 / 5 - 0 avaliações