# VScode Docker container連線教學 :::info :bulb: 此教學為如何在VScode上建置Docker container的圖文解說,以Python環境做說明 ::: ### :small_blue_diamond: 參考網址: https://realnewbie.com/basic-concent/architecture/docker-beginner-guide-complete-concepts-and-tutorial-from-image-to-container/ https://medium.com/@pingstudio07/%E4%BD%BF%E7%94%A8-vs-code-%E9%80%A3%E6%8E%A5%E5%88%B0%E9%81%A0%E7%AB%AF%E4%BC%BA%E6%9C%8D%E5%99%A8%E4%B8%AD%E7%9A%84-docker-container-%E9%96%8B%E7%99%BC%E7%92%B0%E5%A2%83-e5fb9b98bae6 影片教學: https://www.youtube.com/watch?v=6jjYViLthi8 ## :book:解說 :::success 可依照上方參考網址進行建置操作,此流程部分步驟也可以套用在命令提示字元(CMD) ::: 觀念解析:核心概念就是先建立 image,才能啟動 container !!! 而Dockerfile & Docker-Compose 這兩者檔案的關係。 * Dockerfile用於定義單一映像檔(image)的建置流程和配置。 * Docker Compose則用於管理多個容器的編排和配置。 Dockerfile專注於image的構建,而Docker-Compose則專注於容器(container)的編排和管理。兩者結合使用可以更方便地進行容器化應用的開發、測試和部署 ### :small_blue_diamond: 步驟一: 請先下載vs code,下載完後到延伸模組裡尋找remote-ssh,找到後並安裝 ![螢幕擷取畫面 2025-09-05 135720](https://hackmd.io/_uploads/rJVgnxOcee.png) ![image](https://hackmd.io/_uploads/rJkNng_cxe.png) ### :small_blue_diamond: 步驟二: 進行AI主機連線,請按下Ctrl-Shift-P 輸入 remote ssh,找到 Remote-SSH: Add New SSH Host...來新增你要連線的主機IP ![image](https://hackmd.io/_uploads/Hkmdfbuclg.png) 之後會要求你輸入「ssh 帳號@主機名稱或 IP」,好了後按下Enter,之後會再請你輸入一次密碼: ![image](https://hackmd.io/_uploads/S1OaMbdcxx.png) >*若覺得輸入密碼很麻煩的可以參考此網站 https://blog.csdn.net/qq_45956730/article/details/137601010 裡面介紹了Vscode ssh 如何免密碼進入的教學 第一次連線應該都會需要選擇系統,請選擇Linux,後續就會進入介面了,即可開啟Linux端資料夾,修改專案並在Linux執行,Terminal出現的也會是Linux的Bash ### :small_blue_diamond: 步驟三: 進入主機後按下紅框的模組,進入到Containers,可以看到先行建置的容器,若專案已存在Docker或docker-compose設定,可直接點擊VS Code左下角的按鈕,選擇「Reopen in Container」以在現有容器中打開專案。 ![螢幕擷取畫面 2025-09-16 150427](https://hackmd.io/_uploads/SyJL3t8sgg.png) 若要自行新建容器的話,vscode 輸入 Ctrl + Shift + P,並輸入以下指令 >Dev Containers: Add Dev Container Configuration Files 接著選 > 來自預先定義的容器設定範本 (如果遇到已經就有devcontainer.json檔的話可以先略過) ![image](https://hackmd.io/_uploads/Bye9omqjex.png) (也可使用我另外撰寫的Dockerfile來建立環境,若有需要自訂其他系統或是環境也可以另外複製檔案並更改) ![image](https://hackmd.io/_uploads/BkaJziLsel.png) 接著這邊有很多 image, 選一個你喜歡的, 這邊我們選 python3 ![image](https://hackmd.io/_uploads/rJ0QGsIsle.png) 接著會問你需不需要安裝其他的套件, 如果都不需要, 直接選 ok 就好 ![image](https://hackmd.io/_uploads/rkPFGj8ieg.png) 之後你會看到幫你建立了一個資料夾 .devcontainer/devcontainer.json, 並且做相關設定,如果遇到權限問題, 可以考慮加入 "remoteUser": "root" 這段。 ![image](https://hackmd.io/_uploads/r1Z4hQqsgx.png) image 這邊可以放自己喜歡的 image, 這邊我們就先用這個範例,customizations 這邊其實就是設定容器裡面的 vscode 要怎麼設定,包含 vscode 個人化, 以及安裝哪些 vscode 套件之類的.mounts 這部份是像 docker 中的 Volumes (可以掛路徑進去)詳細的設定可參考 [[Dev Container - json_reference](https://containers.dev/implementors/json_reference/)]。 啟動容器方式一樣在 vscode 輸入 Ctrl + Shift + P並打上指令: >Dev Containers: Rebuild and Reopen in Container ![image](https://hackmd.io/_uploads/BJSBaXqoll.png) 接著就要等一下了, 因為它就是在做 docker pull 的事情, 所以如果是第一次都會比較慢. ![image](https://hackmd.io/_uploads/ryJ63HKixg.png) 建立好後可以按下左下角藍色小框,之後按下「連接正在執行的容器」 ![image](https://hackmd.io/_uploads/SkXUCmqige.png) 選擇剛剛我們建立好的容器 infallible_mendeeleev ![image](https://hackmd.io/_uploads/B1Xo079seg.png) 基本上它會再開啟一個 vscode, 這個 vscode 是已經在容器裡面了. 分別下 docker ps 以及 docker images 查看 ![螢幕擷取畫面 2025-09-19 114851](https://hackmd.io/_uploads/r18y789jlx.png) 正在執行的容器就是我們建立了, images 則是剛剛設定的,你可以在這容器內做任何事情, 基本上它就是一個環境了,也可以進行 debug 而新 Container 就需要自行下載其餘你需要的額外模組了 ![image](https://hackmd.io/_uploads/BJfU0BFsxl.png) 要退出的話一樣按下左下角藍色小框關閉遠端連線 ![image](https://hackmd.io/_uploads/Hyxm1IFsle.png) 若需要辨識出來你是哪一個容器的話,可以打上指令 docker ps 查看目前的容器有哪些,找到需要更改名字的容器後輸入 docker rename [old_name][new_name]來更改名稱。 ### :small_blue_diamond: 其餘說明: 若未來遇到需要多個 image 需要建置或是 service 必須在同一個虛擬 network 的狀況下,就是 Docker-Compose 出場的時候了~ 未來會再更新Docker-Compose如何建置 ![l9-LxeJ_I82i8BkdF-890QlZsa8lhVlFtqguqLaoLqg](https://hackmd.io/_uploads/rJFdLLqseg.jpg)