docker attach和docker exec之间的区别

两者都将能够在容器中执行命令。两者都可以分离容器。

那么docker exec和docker attach之间的真正区别是什么?

回答:

有一个提交PR添加到文档中:

此命令(attach)不适用于在容器中运行新进程。请参阅:docker exec

回答“ Docker。如何在运行的容器(run -d)中获取bash \ ssh

? ”阐明了区别:

(docker> = 1.3)如果使用docker

attach

因此,如果我们想使用容器外壳的新实例打开新终端,我们只需要运行docker

exec

如果docker容器是使用/bin/bash命令启动的,则可以使用attach访问它,如果不是,则需要 执行

命令以在容器内创建bash实例exec

如本期所述:

  • Attach不是在容器中运行额外的东西,而是用于附加到正在运行的进程。
  • docker exec”专门用于在已启动的容器中运行新事物,无论是外壳还是其他进程。

相同的问题添加:

尽管attach名称不明确,尤其是由于LXC命令lxc-attach(更类似于docker exec <container>

/bin/sh,但特定于LXC),但它确实具有将您真正地附加到Docker启动的进程的特定目的。

, ,例如,附加到/bin/bash会给您一个shell,但是附加到redis-

server就像您直接在没有守护进程的情况下直接启动redis。

以上是 docker attach和docker exec之间的区别 的全部内容, 来源链接: utcz.com/qa/427750.html

回到顶部