为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地6264312 2019-11-21 12:44:30
我创建了一个容器,-d因此它不是交互式的。docker run -d shykes/pybuilder bin/bash我看到容器已退出:CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                      PORTS               NAMESd6c45e8cc5f0        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.我赢不了。
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

容器将退出,因为您给出的命令将结束。使用以下选项可以使其保持活动状态:


-i 即使未连接STDIN,也请保持打开状态。

-t 分配伪TTY。

因此,您的新run命令是:


docker run -it -d shykes/pybuilder bin/bash

如果要附加到已经运行的容器:


docker exec -it CONTAINER_ID /bin/bash

在这些示例中,/bin/bash将其用作命令。


查看完整回答
反对 回复 2019-11-21
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

因此,我认为答案比上面的许多误导性答案更简单。


启动已停止的现有容器


docker start <container-name/ID>

停止正在运行的容器


docker stop <container-name/ID>

然后登录到容器的交互式外壳


docker exec -it <container-name/ID> bash

启动现有容器并将其附加到一个命令中


docker start -ai <container-name/ID>

当心,这将停止出口的容器。但是通常,您需要启动容器,完成后附加并停止它。


查看完整回答
反对 回复 2019-11-21
  • 3 回答
  • 0 关注
  • 1475 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信