我用 -d
创建了一个容器,所以它不是交互式的。
docker run -d shykes/pybuilder bin/bash
我看到容器已经退出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6c45e8cc5f0 shykes/pybuilder:latest "bin/bash" 41 minutes ago Exited (0) 2 seconds ago clever_bardeen
现在我想在机器上运行偶尔的命令并退出。只是为了得到回应。
我试图启动机器。我尝试附加。我以为我可以用容器调用 run
,但这似乎是不允许的。使用 start
似乎只是运行然后快速存在。
退出后我想回到交互模式。
我试过了:
docker attach d6c45e8cc5f0
但我得到:
2014/10/01 22:33:34 You cannot attach to a stopped container, start it first
但是,如果我启动它,它就会退出。第 22 条。我赢不了。
原文由 Johnston 发布,翻译遵循 CC BY-SA 4.0 许可协议
2014 年 10 月, Docker 团队引入了
docker exec
命令: https ://docs.docker.com/engine/reference/commandline/exec/所以现在你可以在一个正在运行的容器中运行任何命令,只需要知道它的 ID(或名称):
请注意,
exec
命令仅适用于已经运行的容器。如果容器当前已停止,则需要先使用以下命令运行它:这里最重要的是
-d
选项,它代表detached
。这意味着您最初提供给容器的命令(/bin/bash
)将在后台运行,容器不会 _立即停止_。