如何在WSL中使用docker

一直不太习惯在Windows系统进行研发工作,而且生产环境也都是Linux服务器,在Windows下写的代码迁移到Linux系统中运行时难免会遇到各种各样的小问题。所以最近尝试了在WSL中写代码,感觉很舒服。 前段时间刚解决了实用Git时,Linux和Windows换行符不同导致的问题。而docker技术已经非常普及,那么如何在WSL中运行docker呢?

死守WSL

  1. 首先需要在Windows中装好docker,具体操作流程非常简单,从 docker官网下载Docker Desktop.exe,然后安装官网的教程运行安装就可以。在Windows中运行docker需要系统开启Hyper-V,具体方法不再赘述。
  2. WSL的安装好后需要在系统中开启“适用于Linux的Windows子系统”功能。
  3. 从Microsoft Store选择一个自己喜欢的Linux发行版,然后在Linux中安装docker。
  4. 在Linux中安装docker后会发现无法启动docker服务,接下来就是本文的最重要的步骤。
  5. 在Windows中打开docker的设置,开启“Expose deamon on tcp://localhost:2375 without TLS”
  6. 在Linux中指定docker服务的地址为Windows的docker服务,“export DOCKER_HOST=tcp://localhost:2375”
  7. 在Linux中再次运行"docker run hello-world"就可以发现docker服务已经正常了
  8. 为了让每次启动Linux都能正常使用docker,可以在/etc/profile.d/路径下创建一个“dockerwsl.sh”文件,文件内容为“export DOCKER_HOST=tcp://localhost:2375”,具体操作方法如下,需要使用root权限才能正常运行
echo "export DOCKER_HOST=tcp://localhost:2375" > /etc/profile.d/dockerwsl.sh

expose

但是这种方法可能存在一定的安全风险, 微软官网的一篇文章介绍了另外一种方法

转投WSL2

WSL2似乎可以直接支持运行docker,但是笔者还在使用WSL,尚未升级到WSL2,所以提供几篇文章以供参考:

参考

Setting Up Docker for Windows and WSL to Work Flawlessly

Installing the Docker client on Windows Subsystem for Linux (Ubuntu)

下一页
上一页