# Windows Docker Desktop - 手動複製既有資料到Volumes 前言: 鑒於自己尋尋覓覓終於弄懂怎麼用,希望避免以後忘記時可回顧並順便造福其他人。 ## 安裝方法 略,這邊是使用WSL2安裝Ubuntu。 ## 前情提要 - 本次使用情境: 欲在Windows環境下用docker desktop的pyinstaller-linux套件打包py檔供Linux系統執行。 > 參考資料:https://medium.com/%E6%88%91%E5%B0%B1%E5%95%8F%E4%B8%80%E5%8F%A5-%E6%80%8E%E9%BA%BC%E5%AF%AB/python-%E5%B0%87%E7%A8%8B%E5%BC%8F%E6%89%93%E5%8C%85%E7%82%BA%E5%9F%B7%E8%A1%8C%E6%AA%94-exe-mac-os-e9521bc87e24 - 使用並下載Image: `docker pull cdrx/pyinstaller-linux` > github: https://github.com/cdrx/docker-pyinstaller > docker: https://hub.docker.com/r/cdrx/pyinstaller-linux/ - 使用方法 將`requirements.txt`及`sample.spec`放置在**所屬之src資料夾**下後執行 `docker run -v "$(pwd):/src/" cdrx/pyinstaller-linux` 如果沒有sample.spec,則執行後會產生在**所屬之src資料夾**下 `docker run -v "$(pwd):/src/" cdrx/pyinstaller-linux "pyinstaller sample.py"` - 本次困境 找不到所屬src資料夾!不知道該如何從Windows上放資料進去。 由於docker是建立在WSL2架構的虛擬環境,所以很難在檔案總管找到。 ## 開始 ### 1. 下載Image * 除了用docker pull指令外,也可以利用docker desktop Search功能下載。  * 載完後可以在local images找到他  ### 2. 指定Container及Volumes * 點擊image旁的Run按鍵  * 可以為之後的container取名,並設定Volumes位置及Envrioment變數  * 然而指定host path後卻發現資料夾裡的東西沒有跟著進去? 可以到containers -> sample -> Inspect 的 mounts連結,找到所屬的volumes是哪一個。   * 看到Data頁籤發現只有資料夾沒有檔案。 於是只好放棄可惡的UI介面,開啟Powershell。 ``` docker cp local_path/sample.spec sample:src docker cp local_path/requirements.txt sample:src ``` local_path可以用絕對路徑C:/xxx.txt container path是container-name:src 或 container-id:src src就是指container預設的volume位置 * 指令下完後就可以到volums看到檔案已經放入了!  * 從container:src反過來匯出到windows host,只需要位置互換即可 ``` docker cp sample:src/result.txt local_path ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up