我如何從 Docker Desktop 切換到 Colima
??DDEV?? 是一個開源工具,可以在幾分鐘內(nèi)輕松啟動和運行本地 PHP 開發(fā)環(huán)境。由于其每個項目的環(huán)境配置可以擴展、版本控制和共享,所以它很強大和靈活。簡而言之,DDEV 旨在允許開發(fā)團隊在其工作流程中使用容器,而無需復(fù)雜的定制配置。
DDEV 用靈活、現(xiàn)代、基于容器的解決方案取代了更傳統(tǒng)的 AMP 棧解決方案(WAMP、MAMP、XAMPP 等)。因為它使用容器,DDEV 允許每個項目使用任何一組應(yīng)用、Web 服務(wù)器版本、數(shù)據(jù)庫服務(wù)器、搜索索引服務(wù)器和其他類型的軟件。
2022 年 3 月,DDEV 團隊 ??宣布支持 Colima??,這是 macOS 和 Linux 上的開源 Docker Desktop 替代品。??Colima?? 是開源的,據(jù)所有報告顯示,它比其替代方案有所 ??性能提升??,所以使用 Colima 似乎是一個沒有問題的選擇。
遷移到 Colima
首先,Colima 幾乎是 Docker Desktop 的替代品。我說幾乎是因為在將它用于現(xiàn)有的 DDEV 項目時需要重新配置。具體來說,必須重新導(dǎo)入數(shù)據(jù)庫。解決方法是先導(dǎo)出數(shù)據(jù)庫,然后啟動 Colima,然后再導(dǎo)入。很簡單。
Colima 要求安裝 Docker 或 ??Podman?? 命令。在 Linux 上,它還需要 Lima。
Docker 默認隨 Docker Desktop for macOS 一起安裝,但它也可以作為獨立命令使用。如果你想要 100% 純 Colima,你可以卸載 Docker Desktop for macOS,并獨立安裝和配置 Docker 客戶端。??完整的安裝說明可以在 DDEV 文檔站點上找到??。
容器技術(shù)棧圖片 圖片來源:(Mike Anello,CC BY-SA 4.0)
如果你選擇繼續(xù)使用 Colima 和 Docker Desktop,那么在命令行執(zhí)行 ??docker?
? 命令時,你必須首先指定要使用的容器。下一節(jié)將對此進行更多介紹。
在 macOS 上安裝 Colima
我目前有一些本地項目使用 Docker,還有一些使用 Colima。當(dāng)我了解了基礎(chǔ)知識,在它們之間切換就不難了。
- 使用 Homebrew?
?brew install colima?
? 安裝 Colima - ?
?ddev poweroff?
?(為了安全起見) - 接下來,使用?
?colima start --cpu 4 --memory 4?
? 啟動 Colima,??--cpu?
? 和??--memory?
? 選項只需執(zhí)行一次。第一次之后,只需要??colima start?
? - 如果你像我一樣是 DDEV 用戶,那么你可以使用常用的?
?ddev?
? 命令(??ddev config?
?、??ddev start?
? 等)啟動一個全新的 Drupal 9 站點。建議啟用 DDEV 的 mutagen 功能以最大化性能
在 Colima 和 Docker Desktop 之間切換
如果你還沒有準(zhǔn)備好使用 Colima,你可以同時安裝 Colima 和 Docker Desktop。
- 首先關(guān)閉 ddev:?
?ddev poweroff?
? - 然后停止Colima:?
?colima stop?
? - 現(xiàn)在運行?
?docker context use default?
? 告訴 Docker 客戶端你要使用哪個容器。默認名稱是 Docker Desktop for Mac。當(dāng)??colima start?
? 運行時,它會自動將 Docker 切換到??colima?
? 上下文 - 要繼續(xù)使用默認(Docker Desktop)上下文,請使用?
?ddev start?
? 命令。
從技術(shù)上講,啟動和停止 Colima 不是必需的,但是在兩個上下文之間切換時的 ??ddev poweroff?
? 命令是必要的。
Colima 停止時,最新版本的 Colima 會將 Docker 上下文恢復(fù)為 ??default?
?,因此不再需要 ??docker context use default?
? 命令。無論如何,我仍然使用 ??docker context show?
? 來驗證 ??default?
?(Docker Desktop for Mac)或 ??colima?
? 上下文是否正在使用?;旧?,術(shù)語 ??context?
? 指的是 Docker 客戶端將命令發(fā)送到哪個容器提供者。
嘗試 Colima
總的來說,我喜歡我目前所看到的。我沒有遇到任何問題,而且基于 Colima 的網(wǎng)站看起來更快些(尤其是在啟用 DDEV 的 Mutagen 功能時)。我肯定會預(yù)見自己在未來幾周內(nèi)將項目網(wǎng)站遷移到 Colima。