附加到正在运行的容器

附加到容器是在容器(及其中的任何程序)运行的上下文中启动终端会话的行为。这主要用于调试目的,但如果需要将特定数据传递给容器内运行的程序,则可能还需要此功能。

attach 命令用于执行此操作。它有这样的语法:

docker attach <container>

<container> 可以是容器 ID 或容器名称。例如:

docker attach c8a9cf1a1fa8

要么:

docker attach graceful_hopper

你可能需要提供以上命令,具体取决于你的用户以及如何设置 docker。

注意:Attach 仅允许一次将单个 shell 会话附加到容器。

警告: 所有键盘输入都将转发到容器。击中 Ctrl-c 会杀死你的容器。

从连接的容器上分离,Ctrl-p 然后连续点击 Ctrl-q

要将多个 shell 会话附加到容器,或者仅作为替代,你可以使用 exec。使用容器 ID:

docker exec -i -t c8a9cf1a1fa8 /bin/bash

使用容器的名称:

docker exec -i -t graceful_hopper /bin/bash

exec 将运行一个容器内的程序,在这种情况下/bin/bash(一个 shell,大概是容器中的一个)。-i 表示交互式会话,而 -t 表示伪 TTY。

注意:与 attach 不同,hitting Ctrl-c 只会在交互式运行时终止 exec’d 命令。