> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
210ebea2ef5f localhost.localdomain/foo "node app.js -C conf…" 12 minutes ago Restarting (1) 9 minutes ago foo
> docker stop 210ebea2ef5f
210ebea2ef5f
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
210ebea2ef5f localhost.localdomain/foo "node app.js -C conf…" 12 minutes ago Restarting (1) 9 minutes ago foo
嗯?
> docker kill 210ebea2ef5f
Error response from daemon: Cannot kill container: 210ebea2ef5f: Container 210ebea2ef5f6f25265a3da88954fe111fabba99602ef628e0ee88630e26fd5d is not running
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
210ebea2ef5f localhost.localdomain/foo "node app.js -C conf…" 12 minutes ago Restarting (1) 9 minutes ago foo
有人对这里发生的事情有所启发吗?在容器上启用重启策略后,我就开始注意到这一点。它正在Windows(18.09.3)的docker中运行。使用docker compose设置重启策略,如下所示:
version: '3'
services:
foo:
build: .
image: localhost.localdomain/${repository_name}
container_name: ${container_name}
restart: unless-stopped:0
重启策略是否只是在Windows的Docker中出现故障?
顺便说一句。 docker rm 210ebea2ef5f
did 最终从我的docker ps列表中删除了该容器,但这不是我期望的行为。
答案 0 :(得分:0)
您的重新启动策略完全按照您的要求执行。
如果您查看<div>
<li>
<svg width="100" height="100">
<rect width="100" height="100"/>
</svg>
<a>Link element</a>
</li>
</div>
输出中的STATUS
列,则会看到:
docker ps
这通常意味着容器未成功运行:先启动,然后立即退出,然后由Docker立即重新启动。这意味着在运行Restarting (1) 9 minutes ago
时,容器实际上没有运行。
您可以运行docker kill
来停止容器并阻止其重新启动。
您需要检查您的日志和docker stop <id>
,以确定首先要退出容器的原因。
答案 1 :(得分:0)
这看起来像是being fixed in 18.09.5的docker ps
的错误。如果您使用以下方法检查容器:
docker inspect 210ebea2ef5f --format '{{ json .State }}'
状态应显示为已退出。
我怀疑您看到docker ps
出现此错误的原因是因为状态显示在9分钟前,在几秒钟内发生了正常的崩溃循环。您可以尝试rc1 for 18.09.5 that was just pushed(这要求您从测试版本中提取更新),或等待最终的18.09.5发行并对其进行更新。看来这只是ps输出的问题,对容器本身的行为没有影响。