附加到正在執行的容器
附加到容器是在容器(及其中的任何程式)執行的上下文中啟動終端會話的行為。這主要用於除錯目的,但如果需要將特定資料傳遞給容器內執行的程式,則可能還需要此功能。
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 命令。