麻烦得到docker形象和runnig

我昨天下载了一个hopsoft / graphite-statsd docker镜像。 当我现在进入docker imagesterminal并inputdocker 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$ 

我猜测, hopsoft/graphite-statsd是标有<none>那个

但是当我打开Kitematic(Docker的GUI)时,只有你好 – 世界被列在我的图像清单上。 hopsoft/graphite-statsd没有列出。

在去terminal,并试图运行该图像: docker run 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 

它只是挂在那里。

所以,我决定删除它,并再次下载。

但是,在运行docker rmi 89bd20e2deb3 ,我得到以下内容:

 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-tricks :)。 我怎样才能让这个镜像在我的机器上运行? 我真的需要一切帮助,我可以到这里。

顺便说一句(这是一个部分的答案),当你看到:

 *** Running /etc/rc.local... *** Booting runit daemon... *** Runit started as PID 94 

这不是“悬挂”。 容器已经启动了runit ,一个非常像initsystemd的进程pipe理器,这大概是在容器内启动了额外的进程。 你可以看到这样做的东西是这样的:

 pstree -p $(docker inspect --format '{{.State.Pid}}' <container_id>) 

现在,由于89bd20e2deb3是一个中间图像(可能是您正在尝试拉动的石墨图像所使用的一个图层),所以runit实际上不会启动其他任何东西。

这里的关键是,当你的docker run一个图像时,你不一定会得到某种交互式提示。 容器可能会启动networking可访问的服务(如ssh服务器或Web服务器),您可能需要使用该机制与容器进行交互。

根据hopsoft / graphite-stats的文档 ,这个图像看起来就是这种情况。 文档提供了服务正在侦听的端口列表。

但是你还没有能够成功地拉动图像。 在Docker守护进程日志中可能会find问题的线索……在哪里可以find这些取决于你的发行版。 在systemd世界中,答案是journalctl -b -u docker 。 在传统环境中,可以在syslog放置的地方find日志(可能是/var/log/messages或类似的)。