在Raspberry Pi上运行Docker时,启动容器有时会失败

高洛·罗登(Golo Roden)

我已经通过运行Resin.io博客中描述的步骤安装了Docker(0.8.0-1)基本上,一切正常,我能够启动Docker守护程序并运行客户端。

不幸的是,当我尝试运行容器时,有时会失败。这不依赖于实际的容器,因为当您重复该命令时,它将起作用。有时需要两次以上的试用,有时也可以在第一次尝试中使用。我的run命令基本上看起来像:

$ docker run -i -t --rm=true resin/rpi-raspbian bash

因此,到目前为止,还没有什么好想的……code 1无论如何,我得到的错误消息仅告诉我该容器以退出

基本上,当我尝试build使用Dockerfile时,也会发生相同的情况:通常,它仅适用于单个步骤,而在下一个步骤中失败。由于Docker内部缓存结果,您可以通过一次又一次地手动执行它来构建一个Dockerfile,并且在每次运行时都可以更进一步。如果失败,再次code 1

确切的错误消息是:

2014/02/27 18:15:45错误:开始:无法启动容器99fc6a3327fb4af25e6c7a07d992009dde8a5425de89f44aae76ce4740e09492:退出状态1

令我惊讶的是,当我执行docker ps -a之后的操作时,容器并没有被删除(至少,那些无法创建的容器仍然存在)-而且,更令人惊讶的是,此命令将状态代码列为-1

跑步时,我在日志中看不到任何内容

$ docker logs 99fc

是什么导致这些问题?

更新

不幸的是,系统上既没有/var/log/messages文件夹也没有/var/log/syslog文件夹,但是如果运行dmesg,最后几行是:

[56954.479079] device veth4FI4FH entered promiscuous mode
[56955.270388] docker0: port 1(veth4FI4FH) entered forwarding state
[56955.270493] docker0: port 1(veth4FI4FH) entered forwarding state
[56955.480603] docker0: port 1(veth4FI4FH) entered disabled state
[56955.484685] device veth4FI4FH left promiscuous mode
[56955.484726] docker0: port 1(veth4FI4FH) entered disabled state

更新2

现在,我发现可以通过调用来获取扩展日志journalctl(就像在基于systemd的系统上一样)。我得到:

Feb 28 09:31:02 white docker[123]: 2014/02/28 09:31:02 POST /v1.9/containers/create
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job create()
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] -job create() = OK (0)
Feb 28 09:31:02 white docker[123]: 2014/02/28 09:31:02 POST /v1.9/containers/8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916/attach?stderr=1&stdin=1&stdout=1&stream=1
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job inspect(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916, container)
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] -job inspect(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916, container) = OK (0)
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job attach(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916)
Feb 28 09:31:02 white docker[123]: 2014/02/28 09:31:02 POST /v1.9/containers/8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916/start
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job start(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916)
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job allocate_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916)
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] -job allocate_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0)
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] +job allocate_port(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916)
Feb 28 09:31:02 white docker[123]: [/docker|5cd5747f] -job allocate_port(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0)
Feb 28 09:31:03 white docker[123]: [error] container.go:1244 Error running container: exit status 1
Feb 28 09:31:03 white docker[123]: [/docker|5cd5747f] +job release_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916)
Feb 28 09:31:03 white kernel: device vethHXP55Y entered promiscuous mode
Feb 28 09:31:03 white avahi-daemon[131]: Withdrawing workstation service for vethUTI4YT.
Feb 28 09:31:03 white docker[123]: [/docker|5cd5747f] -job release_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0)
Feb 28 09:31:03 white docker[123]: [/docker|5cd5747f] -job attach(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0)
Feb 28 09:31:04 white docker[123]: [/docker|5cd5747f] +job release_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916)
Feb 28 09:31:04 white docker[123]: 2014/02/28 09:31:04 Unable to unmap port 0.0.0.0:80: port is not mapped
Feb 28 09:31:04 white docker[123]: [/docker|5cd5747f] -job release_interface(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = OK (0)
Feb 28 09:31:04 white docker[123]: [error] container.go:1299 8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916: Error closing Pty master: invalid argument
Feb 28 09:31:04 white kernel: docker0: port 1(vethHXP55Y) entered forwarding state
Feb 28 09:31:04 white kernel: docker0: port 1(vethHXP55Y) entered forwarding state
Feb 28 09:31:04 white docker[123]: Cannot start container 8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916: exit status 1[/docker|5cd5747f] -job start(8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916) = ERR (1)
Feb 28 09:31:04 white docker[123]: [error] api.go:959 Error: start: Cannot start container 8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916: exit status 1
Feb 28 09:31:04 white docker[123]: [error] api.go:91 HTTP Error: statusCode=500 start: Cannot start container 8d2928a6a4b4c57aa2760a3681a5fbcf53f890e85d6830b97b9245366d284916: exit status 1
Feb 28 09:31:04 white kernel: docker0: port 1(vethHXP55Y) entered disabled state
Feb 28 09:31:04 white avahi-daemon[131]: Withdrawing workstation service for vethHXP55Y.
Feb 28 09:31:04 white kernel: device vethHXP55Y left promiscuous mode
Feb 28 09:31:04 white kernel: docker0: port 1(vethHXP55Y) entered disabled state

因此,显然问题出在container.go:1244尝试启动容器时。

这有什么帮助吗?

彼得罗萨格

当您使用Docker的Resin端口时,我假设您正在运行Arch Linux。在Arch Linux中,最新的LXC软件包是lxc-1.0,而Docker在此版本的LXC中存在已知问题[1]。

将LXC降级到0.9或0.8应该可以解决此问题。Arch Linux保留最近下载的软件包的缓存/var/cache/pacman/pkg因此,以root用户的身份执行操作pacman -U /var/cache/pacman/pkg/lxc-<VERSION>,然后重新启动您的Docker守护进程。

如果找不到缓存的软件包,则可以在此处找到更多的方法[2]。

[1]使用lxc-info#4298的竞赛条件(GitHub)

[2]降级软件包(Arch Linux Wiki)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Raspberry Pi 4 Microk8s 集群没有启动容器?

来自分类Dev

ubuntu上的Raspberry PI上的Puppeteer有时显示“评估失败:TypeError:无法读取null的'textContent'属性”

来自分类Dev

Raspberry Pi上的Tensorflow

来自分类Dev

在Raspberry Pi上启动时启动Node App

来自分类Dev

在 Raspberry pi 上启动时启动 python 脚本的困难

来自分类Dev

RS232串行Y分配器到Raspberry Pi(USB),热敏打印机有时会阻止流向打印机

来自分类Dev

在Raspberry PI上启动后运行Shell脚本

来自分类Dev

Raspberry Pi在启动后运行脚本

来自分类Dev

在启动时为Raspberry PI运行OpenVINO Python脚本

来自分类Dev

在Raspberry Pi上启动时以及在后台运行带有无限while循环的bash脚本

来自分类Dev

Dart SDK在Raspberry Pi上构建失败

来自分类Dev

Raspberry Pi ssh上的Ubuntu Core失败

来自分类Dev

**kiwi-tcms** docker 容器未在 Raspberry 上启动

来自分类Dev

Raspberry Pi脚本启动顺序

来自分类Dev

从NFS共享启动Raspberry Pi

来自分类Dev

运行命令以在Raspberry Pi上的启动时挂载CIFS卷

来自分类Dev

如何在Raspberry Pi上运行javafx

来自分类Dev

Linux是否可以在Raspberry Pi上运行?

来自分类Dev

使Android SDK工具在Raspberry PI上运行

来自分类Dev

Linux是否可以在Raspberry Pi上运行?

来自分类Dev

在Raspberry Pi上独立运行脚本

来自分类Dev

Raspberry PI的交叉编译

来自分类Dev

Raspberry Pi red light

来自分类Dev

在Raspberry Pi上部署

来自分类Dev

监控多个Raspberry Pi

来自分类Dev

关闭Raspberry Pi的LED

来自分类Dev

Raspberry PI IP地址

来自分类Dev

Raspberry Pi和GitLab

来自分类Dev

NodeJS和Raspberry Pi