我创建了一个容器,-d因此它不是交互式的。
-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似乎可以运行,然后迅速存在。
run
start
我想退出后回到互动模式。
我试过了:
docker attach d6c45e8cc5f0
但是我得到:
2014/10/01 22:33:34 You cannot attach to a stopped container, start it first
但是,如果我启动它,它仍然会退出。赶上22.我赢不了。
在2014年10月,Docker团队引入了docker exec命令:https : //docs.docker.com/engine/reference/commandline/exec/
docker exec
因此,现在您可以在运行容器中运行任何命令,只需知道其ID(或名称)即可:
docker exec -it <container_id_or_name> echo "Hello from container!"
请注意,该exec命令仅适用于已经运行的容器。如果容器当前已停止,则需要首先使用以下命令运行它:
exec
docker run -it -d shykes/pybuilder /bin/bash
这里最重要的是-d选项,它代表detached。这意味着您最初提供给容器(/bin/bash)的命令将在后台运行,并且容器不会 立即停止 。
detached
/bin/bash