Docker是什么?
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
说人话
如果你玩过虚拟机的话,就知道可以在当前系统下通过 VMware、virtualBox 等安装一个新的系统,你可以定制这个虚拟机的CPU 内存 硬盘等参数,获得几乎媲美原生的体验。既然系统可以安装为一个虚拟机,那么聪明的人就有了一个大胆的想法,我可不可以把一个软件服务通过虚拟机装起来呢?于是docker应运而生,docker不仅可以安装centos Ubuntu等操作系统,也可以安装nginx mysql等服务,甚至可以部署个人编写的web服务。
通过虚拟机托管,这样启动了一个进程就相当于在物理机系统中启动了一个新的服务——进程即服务。由于win10自带hyperV虚拟机,因此windows上的docker能直接调用这个虚拟机。
为什么要用Docker?
在没有docker之前,如果我们要在windows上安装mysql、mongodb需要先下载这些软件,然后还要一步步点设置,并且注册到windows服务。并且根本不知道安装到什么地方(某些版本mysql不能指定安装位置,默认到C盘)。同时也会在控制面板内注册许多相关的插件。以后要卸载的时候可能还会有各种残留。作为一个强迫症患者这是万万不能忍受的。
现在有了docker,只需要一行代码就能拉取所需软件的镜像,然后配置一个容器就启动了。需要开发的时候就打开docker,服务便能够运行。占用的空间也小,性能和原生差异不大。增删查改都只需要一行代码就能完成。卸载起来也毫无残留。更重要的是,我可以同时有一个镜像的几个容器。即使我搞坏了一个,也可以用其他的容器。还能随时监测这些容器的磁盘占用等状态
安装及使用
获取Docker
获取Docker
注意这个版本只支持win10以上,win7是没有hyperV虚拟机的
安装完成后,你在桌面上就获得一个可爱的鲸鱼图标,双击以后右下角就会出现docker的图标,稍等会提升docker is running
修改配置
首先修改使用的CPU数, docker占用资源不大,这里随意。内存根据自己的实际需求来。然后是关键的镜像位置,默认在C盘,强迫症患者还是移到了其他盘
Docker的默认官方仓库在国外,因此想在国内使用需要配置镜像加速器,首推阿里云。每个人分配的地址是不一样的,只需要注册阿里云用户就会得到一个加速地址了。
安装MySQL
搞定后在终端输入docker就能获得以下信息
// 搜索mysql的镜像信息
$ docker search mysql
// 从仓库拉取mysql,mysql:tag 后面可以跟标签得到指定版本,不加默认为lastest
$ docker pull mysql
// 从镜像生成容器,注意mysql需要指定登录的密码,以及通过-p 映射端口,必须要映射端口在能才物理机中访问到服务
$ docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql
// 访问容器内的终端
$ docker exec -it mysql bash
注意事项
在双击Docker的安装的过程中,会让你打开VT虚拟化,现在的主流处理器都支持虚拟化功能,所以进BIOS打开就好了,重启电脑以后Docker就能正常使用了。
就是这样:)