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
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.
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:
Recursos opcionais:
Limites:
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.
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.