У меня есть недавно установленный докер, но когда я не могу запускать контейнеры
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.
Информация о докере:
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
Я уже пытался удалить /var/lib/docker/network/files/local-kv.db
как упоминалось в аналогичных проблемах, безуспешно
Похоже, вы используете нестандартное ядро для Ubuntu 14.04. Ubuntu 14.04 поставляется с ядром 3.13. А можно со стандартным ядром попробовать? Возможно, в вашем ядре отсутствуют модули, необходимые для правильной работы докера; вы можете попробовать запустить этот сценарий, чтобы увидеть, чего не хватает; https://github.com/docker/docker/blob/master/contrib/check-config.sh
Упс ... вывод скрипта
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
Интересно, насколько безопасным может быть изменение ядра на не выделенном vps ovh
Похоже, чего-то не хватает, возможно, лучше обратиться в службу поддержки ovh?
Исходя из вышеизложенного, я не думаю, что это ошибка в докере, поэтому я закрою эту проблему, но не стесняйтесь продолжить обсуждение здесь.
В моем случае ошибка появляется каждый раз, когда я обновляю ядро Linux. Он исчезает, когда я перезагружаю компьютер.
Я использую Arch Linux.
Альтернативой является понижение версии ядра, если перезапуск в данный момент невозможен.
sudo pacman -U /var/cache/pacman/pkg/linux-$(uname -r | sed 's/-ARCH//')-x86_64.pkg.tar.xz
Кредиты для @Nowaker . См. Комментарий ниже
Arch linux - это непрерывный выпуск, который поставляется с «передовыми» версиями пакетов. Из-за этого известно, что Arch периодически ломает докер; по этой причине мы не отправляем пакеты для Arch. Возможно, лучше всего сообщить об этом с помощью Arch linux, который поддерживает свои пакеты
Я не вижу здесь никаких проблем. Я только что оставил комментарий для тех, кто использует Arch Linux, чтобы они знали, что после обновления ядра требуется перезагрузка.
Спасибо за разъяснение @thaJeztah.
Спасибо @whoan за ответ!
@whoan Для Arch Linux после обновления ядра все старые модули ядра будут автоматически удалены (заменены модулями ядра новой версии). Поэтому, если вы не перезагружали компьютер, у вас будет старое ядро без соответствующих модулей ядра. Большинство команд докеров загружают модули ядра (если они еще не загружены), но ваше старое ядро больше не может находить свои модули. Вот почему ошибка появляется каждый раз при обновлении ядра Linux и исчезает после перезагрузки компьютера.
Каталог модулей ядра находится в / lib / modules /. В следующий раз перед обновлением ядра сделайте резервную копию старого каталога модулей ядра. После обновления восстановите старый каталог модулей ядра, тогда вы не увидите эту ошибку, даже если не перезагрузите компьютер.
У меня такая же ошибка, но после перезагрузки не работала. Итак, я удаляю все изображения и контейнеры с помощью команд docker image rm
и docker rm
. Тогда докер работает нормально.
У меня возникла эта проблема, потому что я запускал собственное ядро без опции устройства виртуальной пары Ethernet . Так что, если у вас есть собственное ядро, включите эту опцию перед запуском make
. Вы найдете его под:
Device Drivers -> Network device support -> Network core driver support
Помещаю это здесь, потому что это, кажется, первый результат в Google для этой ошибки. Надеюсь, это поможет!
@whoan Альтернативой является понижение версии ядра, если перезапуск в данный момент невозможен. Было бы здорово, если бы вы могли отредактировать свой комментарий, чтобы все знания были в одном месте. Спасибо :-)
sudo pacman -U /var/cache/pacman/pkg/linux-$(uname -r | sed 's/-ARCH//)'-x86_64.pkg.tar.xz
Спасибо @Nowaker за ваш вклад. Я добавил это к своему предыдущему комментарию, как было предложено.
@Nowaker, спасибо! Незначительное исправление опечатки для будущих поисковиков:
sudo pacman -U /var/cache/pacman/pkg/linux-$(uname -r | sed 's/-ARCH//')-x86_64.pkg.tar.xz
(обратите внимание на поменяемые местами заключительные одинарные кавычки и круглые скобки)
Спасибо @morancj. Я исправил это в своем предыдущем комментарии.
Спасибо, это было очень полезно!
@tomas , не могли бы вы помочь мне разобраться в этой проблеме? Я использовал собственное ядро.
Вот ссылка, докер не запускается в armv7l
Завтра я попробую ваш метод, о котором вы напомните. БОЛЬШОЕ СПАСИБО .
@tomas , Спасибо за ответ выше, это решило мою проблему. Большое спасибо.
Вывод скрипта: https://github.com/docker/docker/blob/master/contrib/check-config.sh
Я вижу недостающие пакеты, что делать, чтобы исправить ошибку:
не удалось создать конечную точку flamboyant_tereshkova на сетевом мосту: добавление интерфейса vethfb90d78 в мост docker0 не удалось: не удалось найти мост docker0: route ip + net: такого сетевого интерфейса нет
предупреждение: /proc/config.gz не существует, ищем другие пути для конфигурации ядра ...
информация: чтение конфигурации ядра из /boot/config-4.8.0-59-generic ...
Обычно необходимо:
Дополнительные особенности:
Пределы:
Кто знал? Решением было выключить его и снова включить.
Похоже, Linux скопировал этот трюк из Windows
Я должен добавить для других пользователей Arch, что перезагрузка в моем случае была связана с обновлением системы в тот же день. Похоже, докер не может установить соединение, если вы обновили арку без перезагрузки.
Такая же проблема с моим Raspberry PI.
Перезагрузка решила проблему.
Самый полезный комментарий
Я не вижу здесь никаких проблем. Я только что оставил комментарий для тех, кто использует Arch Linux, чтобы они знали, что после обновления ядра требуется перезагрузка.
Спасибо за разъяснение @thaJeztah.