无法建立和运行docker映像
昨天我下载了一张hopsoft/graphite statsd docker的图片。 当我现在进入docker终端并输入无法建立和运行docker映像,docker,dockerhub,Docker,Dockerhub,昨天我下载了一张hopsoft/graphite statsd docker的图片。 当我现在进入docker终端并输入docker images时,我得到: bash-3.2$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest af340544ed62
docker images
时,我得到:
bash-3.2$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hello-world latest af340544ed62 2 weeks ago 960 B
<none> <none> 89bd20e2deb3 3 weeks ago 785.7 MB
bash-3.2$
它就挂在那里
所以,我决定删除它,然后再次下载
但是,在运行docker rmi 89bd20e2deb3时,我得到以下信息:
bash-3.2$ docker run 89bd20e2deb3
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
No SSH host key available. Generating one...
Creating SSH2 RSA key; this may take some time ...
Creating SSH2 DSA key; this may take some time ...
Creating SSH2 ECDSA key; this may take some time ...
Creating SSH2 ED25519 key; this may take some time ...
invoke-rc.d: policy-rc.d denied execution of restart.
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 94
bash-3.2$ docker rmi 89bd20e2deb3
Error response from daemon: Conflict, cannot delete because 89bd20e2deb3 is held by an ongoing pull or build
Error: failed to remove images: [89bd20e2deb3]
bash-3.2$
现在,我开始玩我的docker技巧:)。如何在我的机器上启动并运行此映像?我真的需要所有我能得到的帮助。顺便说一句(这是一个部分答案),当你看到:
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 94
这不是“只是挂着”。容器启动了runit
,这是一个与init
或systemd
非常类似的过程管理器,它可能随后启动了容器内的其他过程。你可以看到它们在做类似的事情:
pstree -p $(docker inspect --format '{{.State.Pid}}' <container_id>)
pstree-p$(docker-inspect——格式“{{.State.Pid}”)
现在,由于89bd20e2deb3是一个中间图像(可能是您试图提取的graphite图像所使用的层),因此完全有可能runit
实际上没有启动任何其他内容
这里的关键点是,当您运行docker
图像时,您不一定会得到某种交互式提示。容器可以启动网络可访问的服务(例如ssh服务器或web服务器),您可能需要使用该机制与容器进行交互
基于,这似乎是该图像的情况。这些文档提供了服务正在侦听的端口列表
但是你还没能成功地提取图像。问题的线索可以在docker守护程序日志中找到……在哪里找到这些日志取决于您的发行版。在一个systemd
的世界里,答案是journalctl-b-u docker
。在旧式环境中,日志可以在syslog放置的任何位置找到(可能是/var/log/messages
或类似内容)。标记为
的图像不是hopsoft/graphite statsd
。如果您有该图像,它将被标记为hopsoft/graphite statsd
。这表明您的docker pull
可能已失败。现在,当我尝试运行docker pull hopsoft/graphite statsd
时,什么都没有发生,它只是挂起@Larsks好的,所以我决定重新启动我的机器以停止所有进程,然后当我重新启动并尝试docker rmi
时,我成功地将其删除,然后docker pull
命令正常工作。谢谢@larsks现在一切似乎都好了:)。