Docker Desktop
是一个畸形的产品,在某些情况下需要付费,最新的版本中一些功能需要登录,这对于墙内的人来说体验不好,避免出现新的限制,还是抛弃 Docker Desktop
直接使用 Docker CE
吧。
你会得到什么
- WSL2 上完整的 Docker 体验
- Docker Daemon 自动启动,不需要什么黑科技
- 大幅降低 WSL 进程 VmmemWSL 的内存占用,文章最后有对比
要求
已经正常安装了 WSL2
并已安装 Ubuntu
发行版。
环境配置:
OS 相关
# windows 版本
版本:Windows 11 家庭中文版
版本号:23H2
操作系统版本:22631.4317
# WSL 版本
wsl -v
WSL 版本: 2.3.24.0
内核版本: 5.15.153.1-2
WSLg 版本: 1.0.65
MSRDC 版本: 1.2.5620
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.26100.1-240331-1435.ge-release
Windows 版本: 10.0.22631.4317
# Ubuntu 版本
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
WSL2 配置
配置文件 .wslconfig
内容:
[wsl2]
networkingMode=mirrored
autoProxy=true
dnsTunneling=true
firewall=true
memory=2GB
processors=4
swap=2GB
[experimental]
hostAddressLoopback=true
指南
安装 Docker CE
# 确保无旧软件包
$ sudo apt-get remove docker docker-engine docker.io containerd runc
# 确保安装了先决条件
$ sudo apt-get update
$ sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# 添加 docker apt key
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 添加 docker apt 库
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 更新 apt
$ sudo apt-get update
# 安装 Docker CE
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
如果这里从 docker
官方安装比较慢,可以参考文章:在ubuntu22.04中使用阿里云镜像站安装docker(官方安装太慢)
安装完成后,执行后续操作:
# 确保 docker 组存在
$ sudo groupadd docker
# 当前用户添加到组中
$ sudo usermod -aG docker $USER
守护程序
实际上在最新版的 WSL2
中已经默认支持 systemd
了,Docker CE
安装完成后就已经自动添加到服务中了,不需要做什么修改。
附加
安装 Docker Compose
# 确认最新版本
$ switch_version=$(curl -fsSL -o /dev/null -w "%{url_effective}" https://github.com/docker/compose-switch/releases/latest | xargs basename)
# 下载二进制文件
$ sudo curl -fL -o /usr/local/bin/docker-compose \
"https://github.com/docker/compose-switch/releases/download/${switch_version}/docker-compose-linux-$(dpkg --print-architecture)"
# 赋予执行权限
$ sudo chmod +x /usr/local/bin/docker-compose
至此,你的 WSL2
就拥有了一个完整版的 Docker
而完全不需要 Docker Desktop
,在我这里,它还顺便帮我解决了,windows 11
主机无法访问 WSL2
中 Docker
中的服务的问题。
内存占用
更重要的,对于 VmmemWSL
内存占用可谓是天壤之别,在所有环境一样的情况下启动两个相同的容器的情况下,在使用 Docker Desktop
时,VmmemWSL
占用内存超过 2G
,而卸载 Docker Desktop
后直接在 WSL
中使用 Docker CE
时,占用内存在 200MB
左右,差距10倍,非常夸张。
标题:不使用 Docker Desktop 在 WSL2 上运行 Docker
原文链接:https://beltxman.com/4382.html
若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。