当前位置: 首页 > 面试题库 >

如何在已经存在的Docker容器上运行命令?

马浩淼
2023-03-14
问题内容

我创建了一个容器,-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。现在想用vi创建一个文件。 但它向我展示了一个错误:

  • 问题内容: 我想在postgres映像中使用psql以便在数据库上运行一些查询。但是不幸的是,当我连接到postgres容器时,出现了该错误,找不到psql命令… 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 如何在postgres容器中运行psql命令?(我是Docker世界中的新手) 我使用Ubuntu作为主机,但没有在主机上安装postgres,而是使用postgre

  • 我想使用postgres映像中的psql在数据库上运行一些查询。但不幸的是,当我附加到postgres容器时,我得到的错误是psql命令找不到... 对我来说,如何在容器中运行postgre sql查询或命令是一个谜。 这是我的docker-compose.yml:

  • 我试图创建一个maryadb容器,并希望有一个SQL的脚本开始在开始。 基本Dockerfile 手动执行工程 如果在容器启动后等待10-20秒,然后执行命令行,则脚本运行正常。但我更愿意拥有构建或运行过程的这一部分,而不是需要手动步骤和等待时间的猜测。 跑-不工作 我尝试在Dockerfile中使用: 但是它失败了:在构建过程中无法通过套接字连接到本地MySQL服务器。我想这是因为服务还没有启动

  • 问题内容: 我使用第三方GUI(Synology Docker软件包)来设置Docker容器。但是,它的局限性使我需要从命令行运行容器。(我想映射另一个主机IP绑定端口) 现在,由于已经完成了许多设置,因此我想检索启动该容器的原始运行命令,然后可以将端口映射端口更改为新端口。例如。“ ” 我找不到这样做的方法,事件使用“ docker inspect”,没有提供此类信息。 请提供一些建议以解决此问