WSL环境Docker安装与使用

harryshharrysh 网络技术 2024-04-02 42 0

WSL环境Docker安装与使用

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的话在命令行中删掉这个,然后再次执行。
清理删除后留下的垃圾数据:
  1. 删除位于$HOME/.docker/desktop的配置和数据文件

  2. 删除位于/usr/local/bin/com.docker.cli的符号链接

  3. 清除剩余的 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


版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。

喜欢0发布评论

评论列表

发表评论

  • 昵称(必填)
  • 邮箱
  • 网址
请先 登录 再评论,若不是会员请先 注册