美文网首页系统运维专家
如何不安装Docker Desktop在WSL下运行Docker

如何不安装Docker Desktop在WSL下运行Docker

作者: iambowen | 来源:发表于2022-04-17 20:32 被阅读0次

Windows WSL虽然支持通过命令行直接运行Linux系统发行版,但WSL并不支持Systemd,导致Linux系统的Docker无法以后台服务的形式启动。通常的解决办法为安装Docker Desktop,再设置WSL为后端来在Linux下运行Docker,这种方式还是不太方便。

Distrod提供一种更简单的方案,通过安装Distrod或者使用预置Distrod的Linux发行版,解决在WSL下运行Docker的问题。

这里我选择在Ubuntu 18.04上安装Distrod的方式来运行Docker,毕竟我已经安装了Ubuntu的发行版。

安装Distrod

  1. 通过Windows Terminal打开Ubuntu,并安装Distrod,执行以下命令:
curl -L -O "https://raw.githubusercontent.com/nullpo-head/wsl-distrod/main/install.sh"
chmod +x install.sh
sudo ./install.sh install
  1. 在Ubuntu上使能Distrod,执行/opt/distrod/bin/distrod enable或者可以一劳永逸选择在Windows启动/opt/distrod/bin/distrod enable --start-on-windows-boot
  1. 开打新的Windows终端窗口,如Power Shell或者CMD,执行wsl --terminate Ubuntu-18.04(通过wsl --list可以获取所有的WSL发行版)。

  2. 打开新的Ubuntu 窗口,执行sudo service docker start 或者sudo systemctl enable docker.service && sudo systemctl start docker.service启动Docker服务。

运行Docker

简单运行一个nginx的镜像:

iambowen@LAPTOP-ESJAVHR4:~$ docker run -d -p 8080:80 nginx:alpine
Unable to find image 'nginx:alpine' locally
alpine: Pulling from library/nginx
df9b9388f04a: Pull complete
5867cba5fcbd: Pull complete
4b639e65cb3b: Pull complete
061ed9e2b976: Pull complete
bc19f3e8eeb1: Pull complete
4071be97c256: Pull complete
Digest: sha256:5a0df7fb7c8c03e4158ae9974bfbd6a15da2bdfdeded4fb694367ec812325d31
Status: Downloaded newer image for nginx:alpine
4dbd96be91aa8e836027fb94318992a9ee2e88945e7b5e0241c05ab8007517e3
iambowen@LAPTOP-ESJAVHR4:~$ docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS                                   NAMES
4dbd96be91aa   nginx:alpine   "/docker-entrypoint.…"   4 seconds ago   Up 2 seconds   0.0.0.0:8080->80/tcp, :::8080->80/tcp   friendly_pasteur

在Windows的浏览器中输入127.0.0.1:8080就可以看到Nginx欢迎界面了。

相关文章

网友评论

    本文标题:如何不安装Docker Desktop在WSL下运行Docker

    本文链接:https://www.haomeiwen.com/subject/inglertx.html