+-
raspberry-pi-在Raspberry Pi上运行Docker时,启动容器有时会失败
我已经通过运行 Resin.io blog中描述的步骤安装了Docker(0.8.0-1).基本上,一切正常,我能够启动Docker守护程序并运行客户端.

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

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

因此,到目前为止,还没有什么好看的……我得到的错误消息仅告诉我容器以代码1退出,无论这意味着什么.

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

确切的错误消息是:

2014/02/27 18:15:45 Error: start: Cannot start container 99fc6a3327fb4af25e6c7a07d992009dde8a5425de89f44aae76ce4740e09492: exit status 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中,最新的lxc软件包是lxc-1.0,而docker在此版本的lxc [1]中存在已知问题.

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

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

[1] https://github.com/dotcloud/docker/issues/4298

[2] https://wiki.archlinux.org/index.php/Downgrading_Packages

点击查看更多相关文章

转载注明原文:raspberry-pi-在Raspberry Pi上运行Docker时,启动容器有时会失败 - 乐贴网