在运行hello-world的Oracle Linux上,“来自守护程序的错误响应:无法启动容器…没有这样的文件或目录”
TLDR:我试图在Oracle Linux上运行hello-world容器,并且收到错误消息:来自守护程序的错误响应:无法启动容器724ed94d9249b636d6820fb8c2e4ba64232f426812e5b03545762 532751f434e:[8]系统错误:mkdir / var / lib / docker / devicemapper / mnt / 724ed94d9249b636d6820fb8c2e4ba6423 2f426812e5b03545762532751f434e / rootfs / sys / fs / cgroup:no such file or directory
我正尝试在Oracle Linux机器上安装并运行Docker。 我遵循Oracle网页( https://docs.oracle.com/cd/E37670_01/E37355/html/section_kfy_f2z_fp.html )上的说明,但出现了一些问题。
在安装docker-engine时,我有一些与UEK软件包有关的依赖性问题,但是我可以用这个页面上的说明( https://docs.oracle.com/cd/E37670_01/E37355/html/ol_obtain_uek.html ) 。
docker引擎似乎运行得很好,但是当我尝试运行hello-world容器时出现错误:
[root ~]# docker run hello-world Timestamp: 2016-01-13 14:58:06.420677559 -0200 BRST Code: System error Message: mkdir /var/lib/docker/devicemapper/mnt/724ed94d9249b636d6820fb8c2e4ba64232f426812e5b03545762532 751f434e/rootfs/sys/fs/cgroup: no such file or directory Frames: 0: setupRootfs Package: github.com/opencontainers/runc/libcontainer File: rootfs_linux.go@40 1: Init Package: github.com/opencontainers/runc/libcontainer.(*linuxStandardInit) File: standard_init_linux.go@57 2: StartInitialization Package: github.com/opencontainers/runc/libcontainer.(*LinuxFactory) File: factory_linux.go@242 3: initializer Package: github.com/docker/docker/daemon/execdriver/native File: init.go@35 4: Init Package: github.com/docker/docker/pkg/reexec File: reexec.go@26 5: main Package: main File: docker.go@18 6: main Package: runtime File: proc.go@63 7: goexit Package: runtime File: asm_amd64.s@2232 Error response from daemon: Cannot start container 724ed94d9249b636d6820fb8c2e4ba64232f426812e5b03545762 532751f434e: [8] System error: mkdir /var/lib/docker/devicemapper/mnt/724ed94d9249b636d6820fb8c2e4ba6423 2f426812e5b03545762532751f434e/rootfs/sys/fs/cgroup: no such file or directory
有人可以帮我吗?
我在Linux和Docker方面的知识都很less,所以如果我忘记提及任何重要的信息,请问!! = o)
要在Oracle linux上运行Docker,需要安装“Unbreakable Enterprise Kernel”3.8或更高版本。
之后,您可以按照文档中的安装过程
请注意,自Docker 1.8.0以来,Docker不再支持内核2.6; 基于2.6的发行版(RHEL6 / CentOS6)的最新版本是docker 1.7.1
这是内核顺序超过2.6.32-431的已知问题 。 原因是:
“因为使用lxc也不可能在RH6系统上运行。”
我尝试了CentOS6.3(与RedHat / OracleLinux非常相似),它有2.6.32-279.5.2.el6.x86_64内核,并得到了相同的问题(更多信息在日志中)。
[user@localhost ~]$ docker -v Docker version 1.7.1, build 786b29d [user@localhost ~]$ docker run hello-world Error response from daemon: Cannot start container 6853f515819f8928fa5a9b4f2b2af2c117e2c6183dbc1f9ea59c29a28adc45a8: no such file or directory [user@localhost ~]$
但是,如果这是一个选项,则可以通过升级内核来解决这个问题。 所以我升级了内核(2.6.32-573.12.1.el6.x86_64)和docker工程!
PS:不要在没有testing的生产系统中这样做。
[root@localhost ~]# yum -y update kernel Loaded plugins: fastestmirror, presto Loading mirror speeds from cached hostfile * base: ftp.crc.dk ... Dependency Updated: dracut.noarch 0:004-388.el6 dracut-kernel.noarch 0:004-388.el6 dracut-network.noarch 0:004-388.el6 kernel-firmware.noarch 0:2.6.32-573.12.1.el6 Complete! [user@localhost ~]$ reboot ... [user@localhost ~]$ uname -r 2.6.32-573.12.1.el6.x86_64 [user@localhost ~]$ docker run hello-world Hello from Docker. ... For more examples and ideas, visit: https://docs.docker.com/userguide/ [user@localhost ~]$
所以,我build议你检查一下你的内核版本是否低于2.6.32-431,然后进行内核升级并testing一下。
你需要的内核是kernel-uek,而不是“kernel”。 正常的内核是RHEL6兼容的,因此它不能有你需要的修复/更新。 UEK内核工作正常。
还考虑卸载RHEL内核,我刚刚得到了一个内核更新在重新启动时切换回正常内核的情况。 你不希望发生这种情况:-(
- Gitlab CI Runner Docker执行器公开端口
- docker-maven-plugin(io.fabric8) – 如何控制pg_hba.conf和postgresql.conf
- 从远程主机访问php文件
- 主机上的卷 – 拒绝Postgres的权限(Mac OS)
- 无法在Test Kitchen中使用intermediate_instructions和pid_one_commandconfiguration我的Docker容器
- 为什么Docker不向我的容器添加文件?
- oom-killer杀死Docker中的java应用程序 – 报告的内存使用不匹配
- 如何添加postgresql库pgroonga时,使docker撰写?
- 将环境variables传递给Docker容器