
WSL环境安装
一定要在WSL的Linux系统里面装Docker,而不要被Docker官方的教程误导在Windows系统里面装Docker。
如果是在Windows系统里面装Docker,在Linux里面使用Docker会存在很多意想不到的兼容性问题。
安装前准备
确保宿主机 Windows 系统上没有安装
Docker Desktop for Windows,如果有的话完全卸载并重启WSL实例。移除旧版 Docker
可以通过命令
dpkg -l | grep docker查看Linux系统里面已经安装的Docker包。删除Docker关联包:
sudo apt-get remove docker docker-engine docker.io runc sudo apt-get remove docker-ce docker-ce-cli containerd.io
如果有提示找不到
docker-engine的话在命令行中删掉这个,然后再次执行。清理删除后留下的垃圾数据:
删除位于
$HOME/.docker/desktop的配置和数据文件删除位于
/usr/local/bin/com.docker.cli的符号链接清除剩余的 systemd 服务文件
rm -r $HOME/.docker/desktop sudo rm /usr/local/bin/com.docker.cli sudo apt purge docker-desktop
安装 Docker
首先安装必备组件:
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg
添加官方 apt 仓库
添加GPG官方秘钥
注意:以下命令为Debian系统安装命令,其他系统仓库地址会不一样。
sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
设置稳定版仓库
echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo chmod a+r /etc/apt/keyrings/docker.gpg
或者手动增加镜像源,打开文件
/etc/apt/sources.list 增加以下内容:deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian stretch stable
安装最新 Docker
sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
启用 Docker 服务
sudo service docker start # 启动 Docker 服务 sudo service docker status # 查看 Docker 服务运行状态
看到绿色的
Docker is running 字样即安装并配置成功。配置 WSL2 来启用 Docker
添加 /etc/fstab 文件:
sudo touch /etc/fstab
更换网络控制器:
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy # for ipv4 sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy # for ipv6
启用 systemd
WSL里面默认不支持systemd服务,
systemctl命令需要启动systemd服务。若要启用 systemd,请使用在文本编辑器中打开
/etc/wsl.conf文件,以获取管理员权限,并将以下行添加到[boot] systemd=true
然后,需要使用 PowerShell 中的 关闭 WSL 分发
wsl --shutdown 以重启 WSL 实例。分发版本重启后,就支持systemd了。
可以使用命令
systemctl start docker 测试是否支持systemd。或者执行命令:
systemctl list-unit-files --type=service | grep systemd 查看服务的状态。如果此时您的Linux已经支持systemdle了,就不要继续下面的操作了。
若还是不支持systemd那就说明你当前的分发版本不支持systemd,需要安装Distrod。
安装 Distrod执行命令
curl -L -O "https://raw.githubusercontent.com/nullpo-head/wsl-distrod/main/install.sh" chmod +x install.sh sudo ./install.sh install
等待安装完成后,让 WSL 子系统开机时启用 Distrod:
sudo /opt/distrod/bin/distrod enable --start-on-windows-boot
随后执行在Windows CMD执行命令
wsl --shutdown关闭该 WSL2 发行版。可以直接在 Windows Terminal 中新建一个 WSL 窗口,会自动启动。
检查 Docker 服务单元
systemctl list-unit-files | grep docker
如果该命令没有输出任何结果,可能是因为 Docker 服务单元没有正确安装。
您可以尝试重新安装 Docker 引擎,并确保在安装过程中没有出现任何错误。
本文引自:https://xiaomeng.feishu.cn/wiki/wikcnA2jU2Vfp42lkKJLLuKbKRd
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。
评论列表
发表评论