如何在Windows 的 WSL 上安装非桌面版的 Docker?

WSL 让 Windows 上使用 Linux 没有了传统虚机的那种切换压力。Docker 是一个简单的服务容器化解决方案,但是Windows 上的 Docker 桌面版只对个人和小公司免费,而且 Docker 桌面版太庞大,增加了启动 Windows 的时间,也增加了系统资源的消耗。

本文介绍如何在 WSL 2.0 系统里在不安装 Docker 桌面版的情况下直接安装 Docker。本文以 Ubuntu 20 为例,其他 Linux 版本也可以参考本系统的安装方法。

前提条件

要直接安装 Linux 版的 Docker需要系统满足以下条件。

  1. 系统已经安装了 WSL 2.0
    用户可以执行下面的命令检查当前系统的 Linux 版本和 WSL 版本
wsl -l -v

下图显示当前的 Linux 版本是 Ubuntu 20.04, WSL 版本为 2。

  NAME            STATE           VERSION
* Ubuntu-20.04    Running         2
  1. 系统安装的是 Ubuntu 20
    用户可以从 Windows 商店搜索 Ubuntu 安装。安装完成以后进入 wsl 输入以下命令
cat /etc/os-release

应该可以看到类似下图的内容:

NAME="Ubuntu"
VERSION="20.04.5 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.5 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

安装 Docker

打开 WSL,根据下面的文档安装 Docker

  • https://docs.docker.com/engine/install/ubuntu/

大致步骤如下:

  • 卸载老版本
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 的签名
sudo mkdir -p /etc/apt/keyrings
 curl -fsSL https://download.docker.com/linux/ubuntu/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/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 安装 Docker 引擎
sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  • 启动 Docker 服务
sudo service docker start
  • 验证安装是否成功
sudo docker run hello-world

给 Docker 加上代理

有时候因为网络原因,Docker 无法下载镜像文件,我们可以通过设置代理来解决。注意 Docker 官方的给 Docker Client 配置 proxy 的方法是给 docker 容器里的程序访问外网配置的代理。

另外 WSL 不使用 systemd,所以传统的 Linux 中给 docker 加代理的方法并不适用。

这里介绍的方法是如何使用代理下载 docker 镜像文件。具体步骤如下:

  • 进入 WSL
  • 使用 nano 编辑 /etc/default/docker
sudo vim /etc/default/docker
  • 输入类似下面的内容然后保存
export HTTP_PROXY="http://172.26.198.222:10080"
export HTTPS_PROXY="http://172.26.198.222:10080"
export NO_PROXY="localhost,127.0.0.0/8,172.16.0.0/12,192.168.0.0/16,10.0.0.0/8,172.0.0.0/8"
  • 重启 docker 服务
sudo service docker restart

你可能感兴趣的:(Linux,devops,docker,ubuntu,linux,WSL)