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

咱們常常須要進到容器裏去作一些工做,好比查看日誌、調試、啓動其餘進程等。有兩種方法進入容器:attach 和 exec。docker

docker attach

經過 docker attach 能夠 attach 到容器啓動命令的終端,例如:bash

此次咱們經過 「長ID」 attach 到了容器的啓動命令終端,以後看到的是echo 每隔一秒打印的信息。ui

注:可經過 Ctrl+p 而後 Ctrl+q 組合鍵退出 attach 終端。spa

docker exec

經過 docker exec 進入相同的容器:調試

說明以下:日誌

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

② 進入到容器中,容器的 hostname 就是其 「短ID」。orm

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

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

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

相關文章
相關標籤/搜索