兩種進入容器的方法 - 每天5分鍾玩轉 Docker 容器技術(23)


我們經常需要進到容器里去做一些工作,比如查看日志、調試、啟動其他進程等。有兩種方法進入容器:attach 和 exec。

docker attach

通過 docker attach 可以 attach 到容器啟動命令的終端,例如:

這次我們通過 “長ID” attach 到了容器的啟動命令終端,之后看到的是echo 每隔一秒打印的信息。

注:可通過 Ctrl+p 然后 Ctrl+q 組合鍵退出 attach 終端。

docker exec

通過 docker exec 進入相同的容器:

說明如下:

① -it 以交互模式打開 pseudo-TTY,執行 bash,其結果就是打開了一個 bash 終端。

② 進入到容器中,容器的 hostname 就是其 “短ID”。

③ 可以像在普通 Linux 中一樣執行命令。ps -elf 顯示了容器啟動進程while 以及當前的 bash 進程。

④ 執行 exit 退出容器,回到 docker host。

docker exec -it <container> bash|sh 是執行 exec 最常用的方式。

attach VS exec

attach 與 exec 主要區別如下:

  1. attach 直接進入容器 啟動命令 的終端,不會啟動新的進程。

  2. exec 則是在容器中打開新的終端,並且可以啟動新的進程。

  3. 如果想直接在終端中查看啟動命令的輸出,用 attach;其他情況使用 exec。

當然,如果只是為了查看啟動命令的輸出,可以使用 docker logs 命令:

115.png

-f 的作用與 tail -f 類似,能夠持續打印輸出。

下一節聊聊運行容器的最佳實踐。

二維碼+指紋.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM