【问题标题】:Running docker -d fails on Ubuntu 14.04在 Ubuntu 14.04 上运行 docker -d 失败
【发布时间】:2014-12-20 15:45:33
【问题描述】:

我正在开发一个由 Host Europe 提供的新 VM,它与 https://docs.docker.com/installation/ubuntulinux/#ubuntu-trusty-1404-lts-64-bit (所以 Ubuntu Trusty 14.04 (LTS)(64 位),3.13.0 Linux 内核)。 安装 docker.io 包后,docker ps 失败 “无法连接到 Docker 守护程序。'docker -d' 是否在此主机上运行?” 运行 docker -d 时,我得到:

INFO[0000] +job serveapi(unix:///var/run/docker.sock)
INFO[0000] +job init_networkdriver()
inappropriate ioctl for device
INFO[0000] -job init_networkdriver() = ERR (1)
FATA[0000] inappropriate ioctl for device

显然 当 docker 服务尝试通过 upstart 启动时也会发生此错误。 我也按照上述说明中的“Docker-maintained Package Installation”用最新的docker包试了一下。

这里是使用docker -D -d 的更详细的输出:

INFO[0000] +job serveapi(unix:///var/run/docker.sock)
DEBU[0000] libdevmapper(3): ioctl/libdm-iface.c:363 (-1) /dev/mapper/control: open failed: Operation not permitted
DEBU[0000] libdevmapper(3): ioctl/libdm-iface.c:415 (-1) Failure to communicate with kernel device-mapper driver.
DEBU[0000] libdevmapper(3): ioctl/libdm-iface.c:417 (-1) Check that device-mapper is available in the kernel.
DEBU[0000] Using graph driver vfs
DEBU[0000] Creating images graph
DEBU[0000] Restored 0 elements
DEBU[0000] Creating repository list
INFO[0000] +job init_networkdriver()
DEBU[0000] Creating bridge docker0 with network 172.17.42.1/16
DEBU[0000] setting bridge mac address = true
inappropriate ioctl for device
INFO[0000] -job init_networkdriver() = ERR (1)
FATA[0000] inappropriate ioctl for device

有什么想法吗?提前致谢。 (在本地虚拟机上进行了很多成功的“dockerizing”之后,对我来说似乎是一个“死胡同”。)

【问题讨论】:

    标签: docker ubuntu-14.04


    【解决方案1】:

    很可能您的主机不提供 cgroup。有时会发生这种情况,具体取决于他们使用的虚拟化类型。 我对 www.stratro.de 也有同样的问题

    那是cat /proc/cgroups 返回一个空表的时候。

    你可以在这里看到更多:https://mannlinstones.wordpress.com/2014/08/12/docker-v-server-strato-final-results/

    【讨论】:

    • 谢谢 - 这正是我现在所想的。这使得 Docker 在实践中成为一个笑话 在许多情况下,导致如此多的小型 IT 企业依赖于 VM 供应商,例如 Host Europe 或 Strato(整个欧洲)。不幸的是,之后我发现了这一点,我把我的整个基础设施都停靠了...... Grrr。 [link](www.docker.com) 上的一些 警告是最不值得期待的
    • 我刚刚发现leaseweb.com 提供了一个使用 docker 运行的虚拟化。他们在美国、荷兰和德国设有数据中心。也许这适合你。
    【解决方案2】:

    您是否从 Docker -> Check runtime dependencies 检查了运行时依赖项?这肯定是您的filesystem 有问题,可能与this 问题有关。

    来自 Docker:

    正确安装的 cgroupfs 层次结构(只有一个包罗万象的“cgroup”安装点是不够的)

    【讨论】:

    • 非常感谢您的初步建议。我检查了运行时依赖项——它们都可以,除了 cgroups 结构:less /proc/cgroups 返回一个空表(表头除外)。但是我不知道如何解决这个问题 - 我也缺乏关于 cgroups 的更深入的背景知识。 cgroup-liteapparmor 包(显然)已安装...
    猜你喜欢
    • 2018-09-22
    • 2023-03-31
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2015-07-10
    • 2016-07-08
    相关资源
    最近更新 更多