說明
Docker Desktop:可以理解為是 Docker 的桌面版,或者是 Windows 系統(tǒng)上運(yùn)行的 Docker 服務(wù)。
WSL2:可以理解為是 Windows 上的一個工具,通過 WSL2 可以在 Windows 上運(yùn)行 Linux 子系統(tǒng)。
通過 Docker Desktop、WSL2 方式搭建的雙系統(tǒng) Docker 環(huán)境,可以實(shí)現(xiàn)在 Windows 服務(wù)器上同時運(yùn)行 Windows 和 Linux 兩種類型的容器,同時在 Linux 系統(tǒng)里、容器里都可以直接調(diào)用服務(wù)器上的物理資源,如:物理顯卡。
這種方式搭建的雙系統(tǒng) Docker 環(huán)境,更節(jié)省資源,不需要在通過虛擬化軟件的方式,去安裝 Linux 虛擬機(jī)。
WSL2 也是通過虛擬化的方式運(yùn)行的子系統(tǒng),只不過使用的是 Windows 自帶的虛擬機(jī)工具。
WSL1 和 WSL2 是目前WSL的兩個版本,如下為他們的對比(注意,WSL 2 僅在 Windows 11 或 Windows 10 版本 1903、內(nèi)部版本 18362 或更高版本中可用)。
環(huán)境
必備環(huán)境:
1、必須是物理機(jī),且開啟了虛擬化;
2、所安裝的 Windows 系統(tǒng),必須支持開啟Hyper-v、適用于 Windows 的 Linux 子系統(tǒng)、虛擬機(jī)平臺功能;
我的安裝環(huán)境:
安裝了 Windows 10 專業(yè)版 系統(tǒng)的華為筆記本電腦
操作系統(tǒng)內(nèi)部版本是 19045.2965
Linux系統(tǒng)是 CentOS 7.9 19011
安裝
開啟 WSL2 服務(wù)
1、打開控制面板 > 程序 > 程序和功能 > 啟動和安裝Windows功能,勾選里面的Hyper-V、適用于Windows的Linux子系統(tǒng)、虛擬機(jī)平臺,然后按照提示重啟電腦。
2、重啟后打開PowerShell,執(zhí)行如下命令切換到WSL2
wsl --set-default-version 2
成功返回如下
有關(guān)與 WSL 2 的主要區(qū)別的信息,請訪問 https://aka.ms/wsl2
操作成功完成。
安裝 CentOS 系統(tǒng)
1、官方?jīng)]有提供CentOS7,可以在下面這個倉庫下載,選擇對用的版本下載,也可以使用其他的CentOS版本。
- https://github.com/mishamosher/CentOS-WSL
下載 “CentOS7.zip” 即可。
2、下載完成后解壓是兩個文件,注意此時放在哪個目錄下則會在對應(yīng)的目錄下創(chuàng)建ext4.vhdx虛擬磁盤,不建議放到C盤,這個文件隨著時間增長會變得很大。
- CentOS7.exe
- rootfs.tar.gz
3、雙擊CentOS7.exe
即可安裝,第一次安裝可能會報錯,需要先升級內(nèi)核,下載wsl_update_x64.msi
文件安裝即可。
- https://wslstorestorage.blob.core.windows.net
4、打開 PowerShell,執(zhí)行以下命令查看 CentOS 狀態(tài)。
- 正常只能到 CentOS7,我這里是安裝了 docker-desktop 后的查看結(jié)果。
- 執(zhí)行 wsl 進(jìn)入到 CentOS7 系統(tǒng)里,默認(rèn)是進(jìn)入到 CentOS7 里,通過 wsl -d 可切換需要進(jìn)入的系統(tǒng)
安裝 Docker Desktop
1、我們先去官網(wǎng)下載安裝包。
- https://www.docker.com/products/docker-desktop/
2、開始安裝,以下幾個步驟需要注意
3、等待安裝完成,打開 docker-desktop ,啟用 CentOS7 系統(tǒng)。
4、通過 wsl -l -v 命令查看,會有三個子系統(tǒng)在運(yùn)行中
- CentOS7 Linux 系統(tǒng)服務(wù)
- docker-desktop-data docker-desktop 的數(shù)據(jù)服務(wù)
- docker-desktop docker-desktop 的服務(wù)
5、進(jìn)入到 CentOS7 里,執(zhí)行 docker version 可以看到,CentOS7 已經(jīng)安裝好了 docker 服務(wù)且和 docker-desktop 版本一致。
6、至此雙系統(tǒng) docker 環(huán)境已經(jīng)安裝完成了,可以直接進(jìn)入到 Linux 中運(yùn)行容器,或者通過 docker-desktop 運(yùn)行容器。
系統(tǒng)之間的文件傳輸,可以直接復(fù)制,容器開通的端口,也會 映射到物理機(jī)上。
其他
安裝其他發(fā)行版
使用如下命令可查看在線的發(fā)行版
wsl --list --online
以下是可安裝的有效分發(fā)的列表。
請使用“wsl --install -d <分發(fā)>”安裝。
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_8_5 Oracle Linux 8.5
OracleLinux_7_9 Oracle Linux 7.9
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
openSUSE-Leap-15.4 openSUSE Leap 15.4
openSUSE-Tumbleweed openSUSE Tumbleweed
比如安裝Ubuntu-22.04使用下面命令即可,會自動下載并安裝對應(yīng)的發(fā)行版
wsl --install -d Ubuntu-22.04
正在安裝: Ubuntu 22.04 LTS
[========== 18.0%
這樣安裝的缺點(diǎn)是只能安裝在C盤,如果需要遷移可以參考下面的說明,安裝完整后可以看到有兩個發(fā)行版
wsl -l
適用于 Linux 的 Windows 子系統(tǒng)分發(fā)版:
CentOS7 (默認(rèn))
Ubuntu-22.04
安裝完成后不能使用root用戶,會提示用戶已存在,可以使用下面命令手動調(diào)整為root,注意去除掉特殊符號,如Ubuntu-22.04去后后變?yōu)閁buntu2204
Ubuntu2204 config --default-user root
進(jìn)入非默認(rèn)發(fā)新版也是同樣的命令,如Ubuntu2204回車即可進(jìn)入終端
WSL 命令使用
# 啟動
wsl
# 關(guān)閉wsl
wsl --shutdown
# 查看狀態(tài)
wsl -l -v
# 注銷
wsl --unregister CentOS7
Docker-Desktop 儲存路徑更改
說明:默認(rèn) Docker-desktop 初始化的兩個 WSL 子系統(tǒng)會保存在 C盤 下,避免占用 C盤 空間,需要進(jìn)行儲存路徑更改。
- docker-desktop:保存的是程序
- docker-desktop-data: 保存的鏡像
在關(guān)閉docker-desktop的情況下再進(jìn)行操作。
通過wsl命令將這兩個子系統(tǒng)進(jìn)行遷移文章來源:http://www.zghlxwxcb.cn/news/detail-635346.html
- 備份命令
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
- 刪除命令
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
- 導(dǎo)入命令
wsl --import docker-desktop D:\docker\docker-desktop docker-desktop.tar
wsl --import docker-desktop-data D:\docker\docker-desktop-data docker-desktop-data.tar
注意: 兩個子系統(tǒng)文件使用的目錄限制不能為同一個目錄, 完成以上操作啟動docker-desktop下載鏡像文件就不會保存到C盤啦。文章來源地址http://www.zghlxwxcb.cn/news/detail-635346.html
到了這里,關(guān)于基于 Docker Desktop、WSL2 搭建雙系統(tǒng) Docker 環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!