Windows上使用linux子系统(WSL)使用Docker

前言

windows 10 2004版本已更新wsl2,可实现在Linux子系统中安装使用docker,此教程为2004以下版本使用docker,建议尝试更新windows 10 2004尝试使用wsl2

本文介绍在非Windows10 2004版本下如何使用Docker的两种方式

windows Linux子系统 + WLS + Docker for windows

windows Linux子系统 + WSL + VM虚拟机

背景

在之前使用Docker时一直使用的Docker for windows,然而windows版很多命令并不支持;之后Windows 10linux子系统后本想终于可以完美解决,可真实测试后发现,现在的版本没有办法在子系统中使用Docker ,虽然可以安装成功但镜像无法启动。之后就想到可否在windows上安装Docker for windows,子系统使用Docker CLI来调用Windows上的Docker服务,经过验证发现可行。但需要开启hyper虚拟化,并且无法再使用vm虚拟机,所以本人最后用了另外一种方式,在虚拟机中安装Docker

windows Linux子系统 + WLS + Docker for windows

前提

打开Hyper-V,并打开cpu虚拟化功能

安装Linux子系统(WSL)

安装Docker for Windows

1.1 安装Linux子系统(WSL)

现在Windows app store上已经有很多Linux子系统提供安装,像UbuntuopsnsuseCentos等,在安装前需要在程序与功能中打开适用于Linux的Windows子系统功能。

如果是企业版windows或者server版没有windows app store,需要查看是否支持子系统功能,如果支持可以手动安装子系统,安装与下载方法参考微软官方文档

https://docs.microsoft.com/zh-cn/windows/wsl/install-manual

安装完成后在cmd中输入bash,进入子系统,或者ctrl+r,bash进入

如果想深入了解WSL可查看微软官方文档

https://docs.microsoft.com/zh-cn/windows/wsl/about

1.2 配置Docker for Windows

Docker设置中需要开启2375端口,以便守护程序在TCP端点上进行侦听。

1262599943

1.3 配置WSL

我们需要在WSL上安装Docker客户端

 

apt install docker.io

安装完成后配置docker_host连接向docker for windows

 

export DOCKER_HOST=tcp://127.0.0.1:2375

现在就可正常使用docker

20200117154824548

但是改环境变量只会持续到会话结束,每次打开bash都需要重新设置

因此您需要在主目录中的一个名为.bash_profile或者 .bashrc的文件中设置该变量

 

vi ~/.bashrc

在文件末尾添加

 

export DOCKER_HOST=tcp://127.0.0.1:2375 //ip根据实际修改,参考2.2

20200117154852152

1601277845

保存后重启bash执行docker祥光命令可以照常执行

第一种方式需要开启hyper,而hypervm虚拟机只能启动一个,然而又有需要使用vm的需要,这是就不能使用docker for windows,下面介绍在vm中安装docker来实现。

windows Linux子系统 + WSL + VM虚拟机

2.1 vm中安装linux版docker,配置docker

vm中安装linux就不详述了,自行百度,安装docker也是,都很简单,下面介绍下安装完docker后需要配置哪些东西。

与 1.2 相同,也是需要开启2375端口,对外提供api调用来实现。

自行根据自己linux系统及版本修改以下命令

 

vi /usr/lib/systemd/system/docker.service

ubuntu18.04 路径

 

vi /lib/systemd/system/docker.service

打开systemddocker服务配置文件,在ExecStart中加入以下配置

 

-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

20200119093742859

修改后保存,刷新配置,重启docker服务

 

systemctl daemon-reload //1.加载docker守护进程 systemctl restart docker //2.重启docker服务

查看已开启的tcp端口中是否有2375,有的话则证明已配置成功。

20200119094948710

这是docker服务端的配置就完成了,如果没有使用 systemd 工具,自行百度实现方式吧。

2.2 配置WSL

此步骤与 1.2 相同,ip地址改为虚拟机ip地址,也可设置成固态ip,然后映射到本机端口,依然使用127.0.0.1

2.3 windows环境变量

如果不想使用linux子系统也可安装docker for windwos, 但不起服务,只是用Docker CLI,在系统环境变量中添加:

 

变量名:DOCKER_HOST 变量值:tcp://127.0.0.1:2375 //ip根据实际修改,参考2.2

这中方法可实现同样的效果,不过不知是否与linux下的存在差异,可自行决定用哪种方式。

20200119095810699

3. 配置cmder

另外,推荐一款windows下代替cmd的工具cmder,毕竟cmd真的很难用,参考下面的文章。

https://www.jianshu.com/p/5b7c985240a7

可将其设置为启动bash,自动进入linux子系统。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值