Windows10家庭版搭建WSL加Docker的开发环境

前言

WSL也就是win10更新的一个对开发者比较友好的点了,它并不是虚拟机,而是一个模拟环境,并不能支持Linux中的各种操作,但是和windows交互非常方便,消耗很低,所以对我这种菜鸟来说做开发和测试比较合适。
docker的好处这边也就不说了,可以去了解一下(主要是因为我也是第一次用- -),这篇文章主要是将如何安装,对原理和概念的东西不会解释。
其实我要搭建这样的开发环境的原因比较简单,主要是下面两个原因:
1.公司的服务器上的服务就是Linux加docker的模式,我要模拟这样的的结构方便测试和开发,正好学习一下
2.我的开发环境是windows的,我希望借助docker和WSL,把我的开发环境搞得干净一点(为啥不直接用Linux系统呢,只是因为我觉得一个电脑双系统受不了..)

安装WSL

win10商店里面就可以直接安装,这里的坑只有一个,就是要开启Linux子系统服务

安装Docker

这里的坑就比较多了,希望我踩的坑能对你有帮助
环境:win10家庭版

  1. 在WSL里面安装Docker

参考博客:https://yeasy.gitbooks.io/docker_practice/install/
参照上面文章里面Ubuntu的安装方法
安装完成之后,启动docker

sudo service docker start

这里就会报错
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
说的意思就是连接不到守护线程,虽然我也不知道这个守护线程是干嘛的,然后找到了一个国外小哥的博客:
https://medium.com/@sebagomez/installing-the-docker-client-on-ubuntus-windows-subsystem-for-linux-612b392a44c4

最关键点就是你在WSL里面装docker,必须先安装Docker For Windows在你的系统上。
OK,那我们就去安装这个呗。
去官网上面下载。
https://docs.docker.com/docker-for-windows/install/
然后你就会发现安装不上,因为docker不支持win10家庭版...
有些博客里面会说用docker toolbox的东西代替,这里我不建议用,反正我没代替成功。
解决办法第一步:修改注册表,让安装程序误以为我们是win10 pro
定位到HKEY_LOCAL_MACHINEsoftwareMicrosoftWindows NTCurrentVersion
修改EditionId的值为Professional
然后还有要开启Hyper-v服务,这个东西在win10家庭版里面也是没有的,所以我们需要安装。

pushd “%~dp0”

dir /b %SystemRoot%servicingPackagesHyper-V.mum >hyper-v.txt

for /f %%i in (‘findstr /i . hyper-v.txt 2^>nul’) do dism /online /norestart /add-package:"%SystemRoot%servicingPackages%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

将上面的复制到.cmd文件中,然后用管理员运行,安装完毕之后重启电脑,在 安装和启用windows功能 中打开hyper-v服务,启动docker for windows。
这时候我们再回到上面没有启用守护线程的问题

然后回到ubuntun,输入

echo "export DOCKER_HOST=localhost:2375" >> ~/.bash_profile
docker version

也就是告诉docker,他的守护线程接口,docker version检查是否启动成功

结语

到这边我们就可以用使用docker了,然后还有一个很坑的点,就是修改EditionId的值为Professional这个东西,每次重启电脑,windows会自动把它改回去,然后我们就又启动不了docker for windows了,如果我找到解决办法再来补一下。

你可能感兴趣的:(docker,ubuntu)