如何使用Docker APP? / How to Use Docker APP?
你可以在線上透過Colab使用Docker APP,也可以在本機端使用Docker APP喔。
什麼是Docker APP? / What is Docker APP
https://github.com/pulipulichen/docker-app-PDF-to-Crop-SVG
Docker APP是我以Docker容器虛擬化技術包裝建立的跨平臺工具種類。Docker APP通常用於檔案格式的轉換或是資料分析上。如果我在工作時需要對檔案執行一連串的資料處理動作,通常我就會把它做成Docker APP,下次就能一口氣自動地轉換與分析,並直接產生處理後的結果。
舉例來說,「docker-app-PDF-to-Crop-SVG」就是將PDF檔案轉換成SVG、裁邊、再轉換成EMF跟PNG的格式。有些Docker APP還能直接用來架站,例如「docker-web-apache-solr」就能直接架設Apache Solr全文檢索引擎,並且直接用Cloudflare建立臨時的公開網址。
在我的GitHub裡搜尋「docker-app」即可找到更多Docker APP。網址如下:
https://github.com/pulipulichen?tab=repositories&q=docker-app&type=&language=&sort=
Docker APP並不是單純的腳本檔,而是將所有會用到的環境、軟體都包含到Docker映像檔的工具。因此Docker APP可以在能夠安裝Docker環境的本機端上執行,包括了Linux、Windows、Mac OS等電腦環境。此外,Docker APP也能夠在Google提供的Colab平臺上執行。在Colab執行Docker APP時只需要瀏覽器,不用另外安裝Docker環境,因此即使是手機或平板電腦也可以透過Colab執行Docker APP。
接下來我們就來看看怎麽使用Docker APP吧。
在Colab使用Docker APP / Use Docker APP in Colab
通常我會在Docker APP的README.md裡面註明Colab的網址。舉例來說,「docker-app-PDF-to-Crop-SVG」的Colab網址如下:
https://colab.research.google.com/drive/1QCoI7jq8OPvIoNfBItxD6w_gW7ab3jAT?usp=sharing
接著我們就以「docker-app-PDF-to-Crop-SVG」的Colab作為例子,說明如何在Colab上使用Docker APP。
Step 1. 登入 / Login
如果你還沒登入的話,第一件事情是登入你的帳號。使用免費的Google帳號即可。
如果已經登入的話,就直接進入下一步吧。
Step 2. 上傳檔案 / Upload file
我們的範例檔案是「派架導航員」的系統架構圖PDF檔案。你可以在下面的連結取得PDF檔案的備份:
接著進行以下操作:
- 開啟「Files」。
- 按下「Upload to session storage」。
選擇欲處理的檔案。
此時Colab會跳出「Warning」警告。這個意思是上傳的檔案會在Colab的執行機器關機後刪除,提醒你要保留檔案。按下「OK」即可。這個警告只會第一次上傳的時候出現。
確認檔案已經上傳到Files裡面,就算是完成了。
當然,你也可以用拖曳檔案的方式,從另一個視窗將檔案拖到Colab來上傳。但是要小心,不要傳到「sample_data」裡面了。
Step 3. 執行 / Run
接著進行以下操作:
- 在導覽列進入「Runtime」。
- 按下「Run all」。
你也可以按「Ctrl + F9」快速鍵來執行。
此時可以看到下方的資訊列出現了「Executing」的字樣,表示Docker APP正在執行中。第一次執行會花比較久的時間。
Step 4. 取得結果 / Get Output
注意一下地方:
- 當資訊列出現「completed at」的訊息時,表示Docker APP已經執行完成。
- Files裡面新增了「output」資料夾。
如果有看到資訊列的「completed at」訊息,卻看不到「output」資料夾的話,可以按「Refresh」按鈕讓檔案狀態重新整理一下。
點選「output」資料夾可以檢視裡面的檔案。
在需要的檔案上按右鍵或旁邊的「...」即可出現選單,按「Download」就能下載檔案。
Step 5. 處理另一個檔案 / Change another file
如果你要處理另一個檔案的話,你可以直接上傳另一個需要處理的檔案。但如果你不想要Docker APP處理的結果混在一起,那麼也可以先先移除掉既有的檔案。做法如下:
- 在之前的檔案上按右鍵,出現選單。
- 選擇「Delete file」
出現警告訊息,按「OK」確認。
確認檔案已經刪除了。
接下來你就可以回去以Step 2到Step 4的步驟重新操作,並取得另一個檔案的處理結果。
如何在本機端使用Docker APP? / How to use Docker APP in local computer?
除了在Colab使用Docker APP之外,你也可以在本機端使用Docker APP。再處理較大的檔案時,可以省下跟Colab之間上傳與下載檔案的時間。如果你的電腦等級不錯的話,執行Docker APP的速度也會比Colab還要快。
一旦設定完成,Docker APP就能直接跟作業系統整合在一起。你可以直接用Docker APP開啟檔案,然後轉換後的檔案就會出現在旁邊了。
注意事項 / Warning
要在本機端執行Docker APP的門檻不低,常常有很多限制。目前我的Docker APP主要是針對x86核心的Linux桌上型電腦開發,我大多時候也只確認它能在Linux和Colab上能夠運作。Windows或Mac OS可能運作起來會有些問題。如果你電腦的CPU不是使用x86架構,那可能會遭遇更多問題。不過還好Mac OS上有轉換套件可供使用,目前執行下來大致上都沒什麼問題。
在本機執行Docker APP的另一個問題是Docker APP非常佔檔案空間。因為Docker容器技術是將所有要用到的工具都封裝在特定檔案中,而這些檔案又得在你的電腦執行。以「docker-app-PDF-to-Crop-SVG」為例,映像檔本身即佔據了435.29 MB的檔案大小。部分更複雜的Docker APP甚至可能會佔用到1GB以上。
如果你的電腦等級或空間不夠的話,建議先嘗試在Colab上執行Docker APP即可。
取得Docker APP執行檔案 / Get Script or Executable File
如果要在本機端執行Docker APP的話,通常我會在Docker APP的README.md裡面註明Windows、Linux跟Mac OS執行檔案的下載網址。以「docker-app-PDF-to-Crop-SVG」為例子來說,它們的執行檔案下載網址如下:
- For Windows: https://pulipulichen.github.io/docker-app-PDF-to-Crop-SVG/bin/pdf-to-svg.exe
- For Linux and Mac OS: https://pulipulichen.github.io/docker-app-PDF-to-Crop-SVG/bin/pdf-to-svg.sh
接下來要依照作業系統的不同,而有不同的處理方法。
在Linux作業系統執行Docker APP的執行檔案 / Run Docker APP in Linux
下載檔案 / Script
Linux使用者需要下載的是「.sh」結尾的腳本檔案。
Docker APP執行環境 / Environment
在執行之前,Linux使用者需先確保電腦上已經安裝了以下套件:
上述套件只需要確認已經安裝即可。
Docker APP權限設定 / Permission setup
接著需要為腳本檔案增加執行權限。你可以打開終端機,用「cd」移動到腳本檔案所在的資料夾,並執行「chmod +x *.sh」的指令。詳情做法請參考「How to Make a Bash Script File Executable in Linux」。
上述動作是每次使用不同的Docker APP都要設定一次。
執行Docker APP / Run Docker APP
接著你就可以用該腳本檔案開啟你要處理的檔案。或著是你也可以直接開啟腳本檔案,並在檔案選取對話視窗中,選擇你要處理的檔案即可。
在Mac OS作業系統執行Docker APP的執行檔案 / Run Docker APP in Mac OS
下載檔案 / Script
Mac OS使用者需要下載的也是「.sh」結尾的腳本檔案。
Docker APP執行環境 / Environment
在執行之前,Mac OS使用者需先確保電腦上已經安裝了以下套件:
- Docker Desktop: https://www.docker.com/products/docker-desktop/
- Git: https://git-scm.com/downloads
Mac OS使用者如果使用的是M1、M2等ARM架構的晶片,則需要另外安裝轉換套件。執行指令是「softwareupdate --install-rosetta」。詳細做法請參考How to install Rosetta的說明。
上述套件及設定只需要操作一次即可。
Docker APP權限設定 / Permission setup
圖片來源:https://techwiser.com/run-shell-script-mac/
接著需要為腳本檔案增加執行權限。你可以打開終端機(Terminal),用「cd」移動到腳本檔案所在的資料夾,並執行「chmod +x *.sh」的指令。詳情做法請參考「How to Run Shell Script on Mac」。
上述動作是每次使用不同的Docker APP都要設定一次。
執行Docker APP / Run Docker APP
接著你就可以用該腳本檔案開啟你要處理的檔案。或著是你也可以直接開啟腳本檔案,並在檔案選取對話視窗中,選擇你要處理的檔案即可。
在Windows作業系統執行Docker APP的執行檔案 / Run Docker APP in Windows
下載檔案 / Executable File
圖片來源:https://commons.wikimedia.org/wiki/File:Autoit-icon.png
Windows使用者需要下載的是「.exe」結尾的執行檔案。
Docker APP執行環境 / Environment
在執行之前,Windows使用者需先確保電腦上已經安裝了以下套件:
- Docker Desktop: https://www.docker.com/products/docker-desktop/
- Git: https://git-scm.com/downloads
在Windows安裝Docker Desktop需要額外開啟WSL2的功能,步驟較複雜,請參考「在Windows上安装Docker桌面」的說明。
上述套件及設定只需要操作一次即可。
避免Docker APP被防毒軟體刪除 / Add Docker App to antivirus software's exclusions
這個exe執行檔案會被防毒軟體視為不明來源的病毒。請你手動將該exe執行檔案加入到防毒軟體的排除清單中。ClarieC介紹了如何將exe執行檔案加入到Windows Defender的排除項目裡,詳情請看「特定應用軟體或文件夾常被 Windows Defender 誤判?教你如何設定排除」。
上述動作是每次使用不同的Docker APP都要設定一次。
執行Docker APP / Run Docker APP
接著你就可以用該執行檔案開啟你要處理的檔案。或著是你也可以直接開啟執行檔案,並在檔案選取對話視窗中,選擇你要處理的檔案即可。
Docker APP的介紹就到這裡為止了。文章最後要來問的是:你通常是怎麽執行應用程式的呢?
1. 我都開啟電腦上預先安裝好的程式。
2. 我會下載並安裝其他程式來執行。
3. 我喜歡不用安裝的綠色軟體或可攜程式。
4. 工程師都寫腳本檔啦,不喜歡用滑鼠點來點去的。
5. 其他:下面留言分享喔!