我用-d创建了一个容器,因此它不是交互式的
docker运行-d shykes/pybuilder bin/bash
我看到容器已退出:
容器ID映像命令创建状态端口名称
d6c45e8cc5f0 shykes/pybuilder:41分钟前的最新“bin/bash”在2秒前退出
现在我想在机器上运行偶尔的命令并退出。只是为了得到回应
我试着启动机器。我试着连接。我想我可以使用容器调用run,但这似乎是不允许的。使用start似乎只是在运行,然后很快就存在了
退出后,我想回到交互模式
我试过:
码头工人连接d6c45e8cc5f0
但我得到:
2014/10/01 22:33:34如果无法连接到已停止的容器,请先启动它
但如果我启动它,它无论如何都会退出。第22条。我赢不了
2014年10月,Docker团队引入了Docker exec命令:https://docs.docker.com/engine/reference/commandline/exec/
因此,现在您可以在运行的容器中运行任何命令,只需知道其ID(或名称):
docker exec-it<;容器标识或名称>;echo“集装箱你好!”
请注意,exec命令仅对已经运行的容器有效。如果容器当前已停止,则需要首先使用以下命令运行它:
docker run-it-d shykes/pybuilder/bin/bash
这里最重要的是-d选项,它代表分离的。这意味着最初提供给容器的命令(/bin/bash)将在后台运行,容器不会立即停止