您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在“ docker run -d”之后,Docker容器将自动停止

在“ docker run -d”之后,Docker容器将自动停止

CentOS的dockerfile一个认的命令bash

这意味着,在后台-d)中运行时,外壳程序会立即退出

最近泊坞窗授权版本都运行在一个容器分离模式 ,并前台模式-t-i-it

在这种情况下,您不需要任何其他命令,这就足够了:

docker run -t -d centos

bash将在后台等待。最初是在kalyani-chaudhari的答案中报道的,而在jerseybean的答案中进行了详细说明。

vonc@voncvb:~$ d ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
4a50fd9e9189        centos              "/bin/bash"         8 seconds ago       Up 2 seconds                            wonderful_wright

请注意,对于 ,Marinos An 在评论中报告:

docker run -t -d alpine/git不能保持进度。 不得不做:docker run --entrypoint "/bin/sh" -it alpine/git

原始答案(2015年)

本文所述

建议不要使用with docker run -i -t image your- command来运行,-d因为应该使用一个命令来运行容器,而无需通过按Ctrl+ P+ 来分离容器的终端,因此建议使用usingQ

但是,-d选项存在问题。 。 Docker要求您的命令保持在前台运行。否则,它认为您的应用程序停止并关闭了容器。

问题是某些应用程序没有在前台运行。我们如何才能使它更容易?

在这种情况下,您可以添加tail -f /dev/null到命令中。 这样,即使您的main命令在后台运行,您的容器也不会停止,因为tail一直在前台运行。

所以这可以工作:

docker run -d centos tail -f /dev/null

A docker ps显示centos容器仍在运行。

从那里,您可以附加到它或从它分离(或dockerexec某些命令)。

其他 2022/1/1 18:18:47 有461人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶