我已经通过运行Resin.io blog中描述的步骤安装了Docker(0.8.0-1)。基本上,一切正常,我可以启动docker守护进程并运行客户端。在Raspberry Pi上运行Docker时,启动容器会不时失败
不幸的是,当我尝试运行一个容器时,它有时失败。这不取决于实际的容器,因为当你重复它的工作命令时。有时它需要两次以上的试验,有时它也是第一次尝试。我run
命令基本上是这样的:
$ docker run -i -t --rm=true resin/rpi-raspbian bash
所以,没有什么花哨那么远,错误消息我得到的只是告诉我,该容器退出,code 1
,不管这意味着什么。
基本上,当我尝试build
Dockerfile时,会发生同样的情况:通常,它只能用于单个步骤,并且会在下一个步骤失败。由于Docker在内部缓存结果,因此您可以通过手动一次又一次地执行Dockerfile来构建Dockerfile,并且在每次运行中您都可以进一步获得更多信息。如果失败,再次code 1
。
确切的错误信息是:
2014/02/27 18:15:45 Error: start: Cannot start container 99fc6a3327fb4af25e6c7a07d992009dde8a5425de89f44aae76ce4740e09492: exit status 1
让我惊讶的是,当我运行一个docker ps -a
后,容器没有得到删除(至少,不能创建的那些仍然存在) - 而且,更令人惊讶的是,该命令列出了状态码为-1
。
我没有看到任何日志,当我运行
$ docker logs 99fc
什么可能导致这些问题的任何想法?
UPDATE
不幸的是,既不是/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
得到扩展日志(因为我在基于系统的系统)。我得到的是:
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
试图启动容器。
这有什么帮助吗?
泊坞与在Linux内核中的cgroup(LXC)来实现。当他们出错时,任何信息将被写入控制台dmesg或/ var/log/syslog(有时在某些发行版上称为/ var/log/messages) –
刚刚检查过。控制台上的输出是我在问题中写的。不幸的是,/ var/log/syslog和/ var/log/messages都不存在,但是每个容器都有一个带有日志的/ var/log/lxc文件夹:不幸的是,文件'99c ... .log'是空的: - (。请参阅我的更新后的问题 –