如何在已经存在的 Docker 容器上运行命令?
我创建了一个容器,-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 条。我赢不了。
-
2014 年 10 月,Docker 团队引入了
docker exec
命令:https
://docs.docker.com/engine/reference/commandline/exec/所以现在你可以在一个正在运行的容器中运行任何命令,只需要知道它的 ID(或名称):
docker exec -it <container_id_or_name> echo "Hello from container!"
请注意,该
exec
命令仅适用于已经运行的容器。如果容器当前已停止,则需要先使用以下命令运行它:docker run -it -d shykes/pybuilder /bin/bash
这里最重要的是
-d
选项,它代表detached
. 这意味着您最初提供给容器 (/bin/bash
) 的命令将在后台运行,并且容器不会
立即停止 。
-
如何在已经存在的Docker容器上运行命令?
2021-02-01 关注 0 浏览256 1答案
-
Docker-如何在postgres容器中运行psql命令?
2021-02-01 关注 0 浏览170 1答案
-
如何显示Docker容器的运行命令
2021-02-01 关注 0 浏览130 1答案
-
如何在以容器运行的Jenkins中运行Docker
2021-01-31 关注 0 浏览112 1答案
-
如何在Docker容器中运行Cron作业?
2021-02-01 关注 0 浏览231 1答案
-
如何在Docker容器中运行Cron作业
2021-02-01 关注 0 浏览187 1答案
-
如何在 docker 容器中运行 cron 作业?
2022-03-22 关注 0 浏览34 1答案
-
如何输入已经以新的TTY运行的Docker容器
2021-02-01 关注 0 浏览83 1答案
-
如何进入已经使用新 TTY 运行的 Docker 容器
2022-03-22 关注 0 浏览30 1答案
-
如何在Alpine Docker容器中运行Bash脚本?
2021-02-01 关注 0 浏览190 1答案