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