近期,我成功地在windows的wsl(windows subsystem for linux)ubuntu系統(tǒng)上安裝了linux原生的docker。這一成就不僅標志著技術的進步,也為使用windows系統(tǒng)且依賴容器環(huán)境的開發(fā)者們開啟了新的篇章。本文將詳細介紹安裝過程,并探討這一功能的重要性及其對微軟團隊開發(fā)效率的積極影響。
關鍵事件:WSL開始支持systemd
WSL(Windows Subsystem for Linux)于2022年9月21日開始支持systemd。這一支持首先在Windows 11中推出,使得WSL的體驗更加接近于使用裸機Linux。Systemd是許多流行Linux發(fā)行版(如Ubuntu、redhat等)使用的初始化系統(tǒng)和服務管理器。對于那些需要systemd來管理服務的應用來說,這是一個重要的進步,因為它允許在WSL中使用如snap和LXD等依賴于systemd的Linux應用。這項改變對WSL架構產(chǎn)生了影響,因為systemd需要作為PID 1運行,這要求WSL init過程成為systemd的子進程。這一改變確保了系統(tǒng)的干凈關機,并且對WSL init過程做了一些調(diào)整,以適應這種新的層級結構。
對于希望在WSL上使用原生docker的用戶來說,這一支持無疑是一個好消息。Docker和許多其他服務可以利用systemd進行管理,提高了WSL在進行容器化開發(fā)時的便利性和實用性。通過啟用systemd,開發(fā)人員可以在WSL上更有效地管理服務,實現(xiàn)更接近Linux的使用體驗。
如果我們的系統(tǒng)尚未啟用systemd,可以通過修改/etc/wsl.conf文件并添加[boot] systemd=true配置來啟用它。這需要WSL的版本至少為0.67.6或更新版本。
這項功能的支持,確實為使用Windows系統(tǒng)且依賴容器環(huán)境的開發(fā)者帶來了便利,使得在Windows上的Linux開發(fā)體驗更加完整和高效。
安裝過程回顧
在WSL的Ubuntu上安裝Linux原生Docker的過程可以概括為以下幾個步驟:
更新系統(tǒng)包列表并安裝必要的包:
apt update && apt -y install --no-install-recommends apt-transport-https ca-certificates curl gnupg2
添加Docker的官方APT倉庫信息:
echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu jammy stable" | tee /etc/apt/sources.list.d/docker.list
導入Docker的官方GPG密鑰,以確保軟件包的真實性:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | tee /etc/apt/trusted.gpg.d/docker.asc
再次更新系統(tǒng)包列表,并安裝Docker CE(社區(qū)版)、CLI工具、containerd.io、以及Docker的其他插件:
apt update && apt -y install --no-install-recommends docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
功能的意義
在WSL上安裝Linux原生的Docker,為依賴容器化技術的開發(fā)者們提供了極大的便利。以往,Windows用戶要么選擇安裝Docker Desktop,這是一個重量級的解決方案,要么面臨無法直接在WSL中運行Docker的局限。現(xiàn)在,通過原生安裝,開發(fā)者可以在更接近Linux的環(huán)境中運行Docker,享受更輕量、更快速、更靈活的開發(fā)體驗。
微軟團隊的開發(fā)效率
此次技術突破也是對微軟團隊高效開發(fā)能力的證明。通過不斷更新和改進WSL,微軟不僅增強了其與Linux生態(tài)系統(tǒng)的兼容性,還促進了開發(fā)工具和環(huán)境的多樣性。這表明微軟致力于滿足開發(fā)者社區(qū)的需求,無論是通過引入新功能,還是通過改善現(xiàn)有系統(tǒng)的性能和兼容性。
結語
微軟在WSL2中加入對Systemd的支持,不僅提高了與Linux應用的兼容性,也大大簡化了在Windows上使用Linux原生Docker的過程。這一進步對于依賴容器化開發(fā)環(huán)境的開發(fā)者來說意義重大,它不僅展示了微軟對開發(fā)者社區(qū)需求的重視,也進一步加深了Windows與Linux生態(tài)系統(tǒng)之間的整合。現(xiàn)在,開發(fā)者可以在Windows上享受到幾乎與Linux原生環(huán)境相同的開發(fā)體驗,這無疑將推動跨平臺開發(fā)的進一步發(fā)展。我們期待微軟在未來繼續(xù)推動技術的界限,為開發(fā)者社區(qū)提供更多的支持和便利。