後來,阿舍才瞭解到,其實,如果啟動時配置得當,那麼會需要進入 Docker Container 的終端機來操作的機會並不多,但是,偶爾,還是會有需要的,所以,一開始,阿舍是用 Docker 的 attach 指令來操作的,不過,實在不是那麼好用,而且,阿舍還會因為太習慣按 Ctrl-C 而常常會不小心把執行中的 Container 給關掉哩 ... 所以,阿舍不是那麼的建議用 docker attach 來連上 Docker Container 的終端機畫面做操作,而且,實務上,docker attach 的用途也不是這樣子用的哩 ...
好,SSH 不能用,docker attach 不好用,所以,阿舍就找到了 docker exec 這個指令來用,在用途上,這個 docker exec 指令是用來讓使用者直接啟動 Docker Container 內的程式的,因此,只要用下面指令的方式,就可以啟動 Docker Container 內的 Bash Shell 來操作,所以,也就等於是進入 Docker Container 內的終端機了哩 !
$ sudo docker exec -it [Container 名稱或 ID] /bin/bash
以阿舍有一個名叫「ayu-ubuntu」(Container 的 ID 前四碼是 3388)的 Ubuntu Container 為例,阿舍就執行下面第一行或第二行的指令,接著,就會出現這個 Container 的終端機命令列了哩 ! ... 喔 ! 提醒一下,一般的情況下,進入後,就是 root 的身份哩 ...
$ sudo docker exec -it ayu-ubuntu /bin/bash
$ sudo docker exec -it 3388 /bin/bash
喔 ! 以上是理想的狀態下,最後面只要加上要執行「/bin/bash」的 Shell 程式路徑和名稱就可以了,但是 ...不幸的是,並不是所有的 Linux 發行版本都會有 Bash Shell,而且,是放在「/bin」路徑下,因此,如果用上面的方法不能進入到 Container 的終端機的話,那麼就可能要查一下所使用的 Container 的 Image 是用那個作業系統建立的,然後,它支援的 Shell 是那一種,放在那裡哩 ...
以阿舍有一次拿到一個以 Alpine 發行版本做的 Docker Image 來說,它預設是支援 ash,而這個 ash 檔案也是放在「/bin」路徑下,所以,阿舍就要下面這行指令的方式來進入它的終端機哩 ....
$ sudo docker exec -it 3388 /bin/ash
至於 ... 要怎麼知道拿到的 Docker Image 檔是用那一個 Linux 發行版本呢 ? 基本上,阿舍都是先用「/bin/bash」來試,如果不行,才去找到這個 Docker Image 的 Dockerfile 來看是,是「From」那一個 Image 來建的哩 ...
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
沒有留言 :
張貼留言
歡迎留言提問和討論 .... 😁