Toolbx:在 Fedora 中管理多個開發容器
現代的 Linux 開發已經超越了將所有東西直接安裝在系統上的傳統方法。你現在可以使用一些工具來幫助你建立隔離的開發環境,而不必承受完整虛擬機的額外負擔或手動管理容器的複雜性。
這就是 Fedora Toolbx 派上用場的地方——一個可以輕鬆啟動容器化開發環境的工具,同時讓使用體驗像直接在主機系統上工作一樣順暢。
在本指南中,您將學習如何設置和使用 Fedora Toolbx,以建立隔離、可重現且易於管理的開發環境。您將了解 Toolbx 如何幫助您在處理具有相互衝突依賴的多個專案時,同時保持基礎系統的整潔與有序。
本指南以簡單且實用的說明帶領您了解 Toolbx 的基礎知識。您將首先學習什麼是 Toolbx 以及為什麼需要它,然後進一步學習如何在您的 Fedora 系統上安裝和設定。之後,您將建立第一個開發容器,並了解如何有效管理多個環境。
最後幾個章節會向你展示常見的工作流程和最佳實踐,幫助你在日常開發工作中充分利用 Toolbx。
注意:Toolbx 最初是為 Fedora 開發的,並在基於 Fedora 的系統上表現最佳,雖然你也可以在其他現代 Linux 發行版上使用,但本指南主要針對 Fedora。
了解 Toolbx:它有何不同
在開始使用 Toolbx 之前,了解它的實際功能以及為什麼在開發工作流程中需要它是很重要的。
Toolbx 使用 Podman 創建容器化環境,Podman 是一種類似於 Docker 的容器引擎,但運行時不需要 daemon。
Toolbx 的突出之處在於它如何將這些容器與你的主機系統緊密整合,為你提供一種流暢的開發體驗,並不像傳統容器那樣感到受限。
當你使用 Toolbx 容器時,你將獲得多項關鍵好處,使你的開發工作更加輕鬆:
- 無縫的主目錄存取 – 你的主目錄會自動掛載到容器中,這意味著你的檔案、設定和 SSH 金鑰可以立即使用,無需額外設定。
- 直接硬體存取 – 圖形、音訊及其他設備開箱即可使用,無需特殊設定或繁複的掛載程序。
- 主機整合 – 您可以運行圖形化應用程式、存取網路,並與系統互動,就像您直接在主機系統上操作,而不是在容器內。
你可以把 Toolbx 想像成在你的開發工具和依賴項周圍創建一個受保護的「泡泡」。在這個泡泡內,你可以安裝任何專案所需的套件、函式庫或工具,而不會影響你的主系統。
在以下章節中,您將學習如何在您的 Fedora 系統上安裝 Toolbx,並開始建立這些獨立的開發環境。
在 Fedora 上安裝 Toolbx
在 Fedora Workstation(版本 28 及以後),toolbx 已預先安裝,您可以透過執行以下命令來確認。
toolbox --version
如果你看到版本號,表示一切就緒;如果尚未安裝 Toolbx,你可以使用以下方式安裝:
sudo dnf install toolbox
安裝就這麼簡單。沒有複雜的設定檔,沒有守護程序設定,也不需要擔心額外的依賴。
創建您的第一個 Toolbx 容器
建立一個 Toolbx 容器是一個簡單的過程,你只需執行一個指令就能完成,這個指令會根據你目前的 Fedora 版本建立一個預設的容器。
例如,如果你正在使用 Fedora 41,它會自動為你建立一個 Fedora 41 容器。第一次執行這個指令時,Toolbx 會下載容器映像檔,這可能需要幾分鐘,具體時間取決於你的網路連線速度。
toolbox create
容器創建完成後,您可以透過執行下一個指令進入它:
toolbox enter
你會注意到提示字元中出現的小容器圖示 (⬢),這表示你已進入你的 Toolbx 容器。
即使你在容器化環境中工作,你會發現你的主目錄、檔案,以及大部分主機系統環境仍然可以像在主要系統上一樣輕鬆訪問。
使用不同的 Fedora 版本
有時你需要使用特定版本的 Fedora,也許你的生產伺服器運行的是較舊的版本,或者你想在升級主系統之前測試與最新版本的相容性。
Toolbx 使用 --release 或 -r 選項讓這變得很簡單:
toolbox create --release 39 fedora39-container
toolbox create --release 41 testing-fedora41
即使宿主系統運行較新的版本,您也可以使用較舊 Fedora 版本的容器,這為您提供了一種方便的方法來保持與不同環境的兼容性。
測試您的容器環境
為了確認你確實在容器內,並了解它與你的主機系統有何不同,你可以執行一些簡單的命令,例如檢查已安裝的套件。
dnf list installed | wc -l
你也可以檢查容器的主機名稱:
hostname
要查看您目前的工作目錄並確認您的主目錄可以存取:
pwd
ls -la
你會注意到你在你的主目錄中,所有熟悉的檔案和資料夾都可見,即使你身處容器內。
在容器內安裝軟體
既然你已進入容器內,你就可以安裝開發工具而不影響你的主機系統。例如,如果你想設置一個 Python 開發環境:
sudo dnf install python3-pip python3-virtualenv git vim -y
如果你退出容器並檢查你的主機系統,這些套件不會安裝在那裡,它們僅存在於你的 Toolbx 環境中。
讓我們再試一個使用 Node.js 開發工具的例子。
sudo dnf install nodejs npm -y
node --version
npm --version
這些指令會安裝 Node.js 和 npm,然後透過檢查它們的版本來驗證安裝是否成功。再次強調,此安裝與您的主機系統完全隔離。
當你完成容器中的工作後,你可以簡單地執行以下命令來退出它:
exit
為不同專案建立命名容器
雖然預設容器對於一般開發工作已經足夠,但你通常會需要為不同的專案或特定用途使用不同的容器。建立具名容器能幫助你更有效地組織開發環境,並保持工作的獨立性。
要創建具名容器,請執行 toolbox create 命令,然後輸入您想給容器命名的名稱:
toolbox create python-dev
toolbox create nodejs-project
toolbox create rust-experiments
這些指令中的每一個都會建立一個具有獨立隔離環境的獨特容器。當你想要處理特定專案時,可以使用 enter 指令並提供容器名稱進入對應的容器:
toolbox enter python-dev
這種方法可以幫助你為不同類型的開發工作維持完全隔離的環境。例如,你的 Python 容器可以運行帶有所有現代依賴項的 Python 3.12,而你的舊版專案容器可能使用帶有舊版庫的 Python 3.8,且這兩個環境互不干擾,也不會以任何方式影響到你的主機系統。
從 Toolbx 執行圖形應用程式
讓 Toolbx 真正與眾不同的是它能夠在容器內無縫運行圖形應用程式。這與傳統容器不同,傳統容器需要複雜的 X11 轉發設置和配置。
Toolbx 自動處理所有顯示整合,讓你感覺就像是在主機系統上直接運行應用程式。
為了了解這在實際中如何運作,讓我們以安裝和運行一個圖形化文字編輯器為例。
toolbox enter
sudo dnf install gedit -y
安裝完成後,您可以啟動編輯器。
gedit &
gedit 視窗會在你的桌面上打開,就好像你是從主機系統啟動它一樣。你可以建立、編輯和儲存檔案,一切運作都完全如你所預期。
位於結尾的符號 (&) 將應用程式在背景中執行,讓你在圖形介面應用程式保持開啟的同時,仍能繼續使用終端機。
管理多個 Toolbx 容器
當你為不同的專案建立更多容器時,你將需要一種方法來追蹤它們並有效地管理它們。Toolbx 提供了多個命令,幫助你查看、控制以及組織你的容器化環境。
列出您的容器
要查看您創建的所有容器,請執行列出命令:
toolbox list
從這個輸出中,你可以看到哪些容器正在運行,哪些已經退出。
檢查容器詳情
如果你想要獲取關於特定容器的更多詳細資訊,你可以直接使用 Podman,因為 Toolbx 容器本質上是普通的 Podman 容器:
podman ps -a
您也可以檢查特定的容器以查看其完整配置:
podman inspect python-dev
停止與啟動運行中的容器
當你完成在容器中的工作並想要釋放系統資源時,你可以明確地停止它。
podman stop python-dev
你可以再次執行列出命令來確認容器已經停止:
toolbox list
你會看到容器的狀態已從「運行中」變為「已退出」。
如果你有一個目前已停止的容器,並且你想再次使用它,你只需 進入 它,Toolbx 就會自動為你啟動它:
toolbox enter python-dev
移除不再需要的容器
隨著時間推移,你可能會累積一些不再使用的容器,而這些容器會佔用系統的磁碟空間。當你確定不再需要某個容器時,可以使用 rm 命令將其完全移除:
toolbox rm python-dev
在移除容器之前,Toolbx 會要求你確認此操作,只需輸入 y 以確認,Toolbx 將會移除容器以及你在其中安裝的所有套件和配置。
重要提示:刪除容器會刪除所有套件、系統設定以及存放在容器檔案系統中的任何資料,但您的主目錄檔案將完全安全無虞。
移除後,你可以使用以下指令檢查所有容器、映像和卷的磁碟使用情況:
podman system df
如果你想透過移除所有已停止的容器和未使用的映像來釋放磁碟空間,你可以執行清理命令:
podman system prune
結論
Toolbx 為您提供了一種強大的方式,在您的 Fedora 系統上管理開發環境,而無需傳統虛擬機的複雜性。
在本指南中,您學會了如何創建隔離的容器、運行圖形化應用程式,以及在保持基礎系統乾淨的同時管理多個開發環境。
你覺得這份指南有幫助嗎?在下方留言分享你的經驗、問題或建議。你的回饋能幫助我們改進內容,並協助其他讀者在使用 Toolbx 的旅程中受益。









