Win10内置Linux系统安装docker

​​本文同步自微信公众号:浮世Talk(ID:fausai_talk)

更好阅读体验请扫码关注公众号

相信有过编程经历的朋友都有这样的体会:为了学习一门技术去安装软件时,不仅需要根据操作系统选择版本,还要考虑所依赖的软件,完了还有各种变量配置,环境配置等

当然,这点小问题难不住聪明好学的你,但就是因为这该死的好学给你带来无限的磨难

很快你又会进行新技能的学习,巧合的是你仍然需要安装软件。随着安装的软件种类、版本增加,很可能会影响到你之前在电脑上呕心沥血配置好的其它学习环境,而你却全然不知

当你意识到这个问题的严重性,并且想要逐个问题排查、解决时,随之而来的就是无尽的痛苦。时光荏苒,斗转星移,现在我还能想起当年安装Oracle时惨痛的经历…

除了在我们学习中遇到安装配置的麻烦之外,在公司生产服务器中,这种问题的严重性更加突出,归根到底还是我们对软件安装管理的方式出了问题,导致服务器系统越用越乱,最后一团糟

解决这个问题,首先我们需要一台干净的服务器,并且尽可能的一直保持它干净

声名显赫的docker,就能很好的解决这个问题。关于docker,网上很多资料介绍,从概念、原理、源码甚至哲学思想层面,可谓面面俱到,这里简单的说明一下即可

  • docker是一款开源的软件管理工具,它包括了一个命令行客户端程序、一个后台守护进程,以及一组远程服务

  • 它提供了一种在容器中运行安全隔离的应用程序的方法,能快速解决如安装、配置、运行、发布、升级、卸载等软件管理问题

  • docker专注解决软件管理问题,让你专注于高价值的事

 

你可以在官方文档中了解更多关于docker的信息:https://docs.docker.com/

用docker管理你的软件,首先得有docker,docker最好的安装环境是ubuntu/centos/RedHat,我的电脑是Win10家庭版操作熊,启用了内置的Linux子系统(wsl),先就一步步演示如何在wsl上安装docker。

1,在wsl上安装docker

首先卸载掉ubuntu中可能存在的旧版本docker,执行以下命令

 

sudo apt-get remove docker docker-engine docker-ce docker.io

然后执行以下命令,等待片刻即可安装完毕

 

sudo apt-get update
sudo apt-get install docker.io & y

当上面步骤执行成功后,执行以下命令启动docker

 

1gavin@ZCG04000023:~$ sudo service docker start
2[sudo] password for gavin:
3 * Starting Docker: docker                                   [ OK ]
4gavin@ZCG04000023:~$

docker启动成功,输入docker version,看到以下内容即为安装成功

Win10内置Linux系统安装docker_第1张图片

虽然安装成功,但是现在的docker是不能用的,细心的你可能看到docker输出了这个提示:

 

Cannot connect to the Docker daemon at tcp://127.0.0.1:2375. Is the docker daemon running?

daemon(守护进程)是docker的重要组成部分,用于监听客户端的请求,它运行在2375这个端口,由于目前wsl还不支持docker的守护进程,所以出现Is the docker daemon running?这个提示,我们可以安装docker for Windows来解决这个问题

安装docker for Windows的前提是,你的电脑要打开Hyper-V功能

2,启用Windows Hyper-V功能

先发微软官方文档的一个截图

Win10内置Linux系统安装docker_第2张图片

很明白了,Win10家庭版不支持Hyper-V功能,如果你的电脑是专业版、企业版或者教育版,可以忽略这节内容,直接到控制面板->程序和功能->启用或关闭Windows功能将Hyper-V开启,如果你用的是家庭版,继续看下去,我们愉快的踩坑吧

1,在一个目录(例如D:\tmp)下新建一个脚本,例如hyper-v.cmd,输入以下内容

 

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

保存,接着选中hyper-v.cmd脚本右键,以管理员身份运行,运行完毕,会提示你重启电脑

电脑重启完毕,到控制面板->程序和功能->启用或关闭Windows功能将Hyper-V开启,点击确定

Win10内置Linux系统安装docker_第3张图片

以管理员身份打开cmd,运行以下命令,该命令把你电脑伪装成专业版

 

REG ADD "HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion" /v EditionId /T REG_EXPAND_SZ /d Professional /F

3,安装docker for Windows

可以到官网下载docker for Windows,速度还是相当快的,如不嫌弃,我呈上百度网盘里收藏的一份

 

官网地址:https://docs.docker.com/docker-for-windows/release-notes/
网盘链接:https://pan.baidu.com/s/1C_k7VzsJ33J72raF1fJOxQ 提取码:lxjk

下载完毕,就是安装,安装过程中会出现一个下图一样的提示,如果默认打了勾,请去掉

Win10内置Linux系统安装docker_第4张图片

安装成功后,电脑右下角会有docker可爱的logo在闪烁,待其闪烁完毕,docker for windows就启动成功了

Win10内置Linux系统安装docker_第5张图片

先控制一下情绪,再做点配置,我们就可以使用docker了

回忆上面在wsl上运行docker version时看到的提示

 

Cannot connect to the Docker daemon at tcp://127.0.0.1:2375. Is the docker daemon running?

现在我们可以解决它了,右键电脑右下角docker的logo,点击settings,在弹出的界面中,进行下图操作,docker会自动重启

Win10内置Linux系统安装docker_第6张图片

接着,在wsl的命令行中输入vim .bashrc,打开bashrc文件,在文件末尾添加以下内容

 

export DOCKER_HOST=tcp://127.0.0.1:2375

保存,退出,重新启动命令行,再次输入docker version,就发现没有那个提示了

 

1gavin@ZCG04000023:~$ docker version
2Client:
3 Version:           18.09.5
4 API version:       1.39
5 Go version:        go1.10.4
6 Git commit:        e8ff056
7 Built:             Thu May  9 23:11:19 2019
8 OS/Arch:           linux/amd64
9 Experimental:      false
10Server: Docker Engine - Community
11 Engine:
12  Version:          18.09.2
13  API version:      1.39 (minimum version 1.12)
14  Go version:       go1.10.6
15  Git commit:       6247962
16  Built:            Sun Feb 10 04:13:06 2019
17  OS/Arch:          linux/amd64
18  Experimental:     false

到目前为止,docker在你的wsl中能成功的运行啦,需要注意的一点是,docker for Windows安装默认会把docker下载的镜像文件放在系统盘下,如果你的系统盘空间比较紧张,建议你在没用使用docker之前,把放置镜像文件的目录改到其它盘

右键电脑右下角docker的logo,点击settings,选中Advanced,将image location改到你需要的目录,例如我改到D:\Hyper-V\Virtual Hard Disks\目录下

Win10内置Linux系统安装docker_第7张图片

4,快速体验docker

历经艰辛,我们终于把docker在wsl中安装成功了,你是不是已经跃跃欲试啦,来,让我们肆无忌惮的使用docker吧

从我们熟悉的mysql开始来快速体验docker

如果你不懂docker语法,可以忽略以下命令的细节,直接围观,感受一下docker的威力即可

执行docker pull mysql命令,docker将会从远程镜像仓库中将mysql镜像下载

 

1gavin@ZCG04000023:~$ docker pull mysql
2Using default tag: latest
3latest: Pulling from library/mysql
4fc7181108d40: Downloading [==========================>                        ]  11.73MB/22.49MB
5787a24c80112: Download complete
6a08cb039d3cd: Download complete
74f7d35eb5394: Download complete
85aa21f895d95: Download complete
9a742e211b7a2: Downloading [===========================================>       ]  10.51MB/12.11MB
100163805ad937: Download complete
1187f18876c3ff: Waiting
1278082f25f167: Waiting
130a510f055c17: Waiting
14312b0999e433: Waiting
15f864cfdc0264: Waiting

待下载解压完毕,执行docker images命令查看我们的docker镜像

 

1gavin@ZCG04000023:~$ docker images
2REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
3mysql                      latest              a522071a8cc3        20 hours ago        443MB

话不多说,执行以下命令,即可运行我们的mysql容器

 

docker run -d --name mysql --rm -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

执行以下命令,进入mysql容器

 

docker exec -it mysql /bin/bash

现在,让我们像平时一样,用最熟悉的方式登录mysql数据库,尽情玩耍吧

Win10内置Linux系统安装docker_第8张图片

5,总结

docker容器技术非常强大,已有无数业内的技术巨拿毫不吝啬的给予它潮水般的褒扬之词,我相信,技术嗅觉敏锐的你肯定早已有所耳闻

很多软件,如ELK、CDH等大数据产品都贴心的提供了docker镜像版本,目的就是为了能让开发者迅速的安装体验,不用把时间浪费在环境配置上,从而可以快速的评估该技术是否符合项目选型需求

在学习技术的道路上,我们拼尽全力往前走,不是为了踩更多的坑,「生命是有限的,技术的坑是无限的,用有限的生命去踩无限的坑是危险的」,如果是因为软件安装环境的问题折腾到凌晨四点,这样很不明智,也有害于健康

尽快用上docker,早点扣响真理的大门

- THE END -

扩展阅读:

Win10启用内置Linux子系统(上)

Win10启用内置Linux子系统(下)

扩展练习:

如何为docker配置国内镜像加速?

 


 

你可能感兴趣的:(Docker学习,docker,Linux,wsl,windows)