说到Docker
, 现在可是"家喻户晓"。但是随着Docker
的生态越来越强大, 资料越来越多, 反而对新手越来越不友好, 好多人准备学习一下, 但是又不知从哪入手?
想要玩Docker
, 首先要先明白, Docker
是干嘛的?可以解决什么问题?使用Docker
可以解决哪些问题…等等等。
这篇文章为基础内容, Docker
玩家可以跳过, 本篇主要针对想学却不了解Docker
的小白
如何在Mac Os上面使用Docker?
Mac上面我个人非常喜欢使用brew
安装, 实在是太强大了, 对于常见的相关包都能使用它来安装, 并且进行统一管理, 还可以选择可视化应用的安装。
比如我们经常使用到安全上网工具shadowsocksx-ng
, 都可以直接进行安装。那么Docker
我也直接使用这个来安装。(如果对brew
不太了解的小伙伴, 可以先去官网看看使用一下, 非常简单易上手的)
我当然要安装带图形界面的啦。
brew -v // 确定已经安装了brew 然后开始骚起来
brew cask install docker // cask这个参数就是安装图形界面版啦
等待安装,最后在你的启动台里面出现这个图标就ok了
启动一下Docker
,在终端输入
docker -v 查看docker版本
Docker version 18.09.2, build 6247962 因为我安装的早一点, 所以大家版本号可能不太一致, 但是没关系 只要不是大版本更新就ok
docker info 查看docker信息 会看到很多相关信息 我们看最后一个。可以知道我们安装的是社区版, Docker有企业版的 比社区版多些东西 个人开发社区版足矣
Product License: Community Engine
Docker基本概念
docker
是一个使用GO
语言开发的项目, 并且是一个遵从 Apache2.0
协议的开源项目
版本分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)
我相信, 大多数人都使用过虚拟机, 安装VMware
等工具, 可以在我们的系统上安装其它系统, 并且只要你的电脑配置够高, 可以利用虚拟机安装多个系统。
VMware
就是利用虚拟化的技术,虚拟化是一种资源管理技术, 是将计算机的各种物理资源, 如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破物理设备结构间的不可切割的障碍,使用户可以比原本的架构更好的方式来应用这些资源。
常见虚拟化:
- 内存虚拟化
- 磁盘虚拟化
- 网络虚拟化
VMware
包含了以上三种虚拟化,VMware
在宿主机器上创建了虚拟层, 虚拟化操作系统。但是VMware
的缺点也来了, 每次提供镜像, 直到安装成功需要消耗大量的内存, 有的时候我们只想简单的安装一个工具然后测试比较麻烦, 不够轻量, 操作速度慢等, 随即Docker
出场了。
Docker
也是基于虚拟化技术来实现的, 但是与虚拟机不同的是, Docker
是在操作系统上创建Docker
引擎, 直接在宿主主机的操作系统上调用硬件资源,而不是虚拟化操作系统和硬件资源,所以操作速度快。
得出结论
- Docker也是利用虚拟化技术, 但是与其他虚拟化不太一样, Docker是与宿主机共用一个内核
- Docker也可以创建虚拟系统
- Docker使用轻量, 并且速度快
那么Docker是怎么创建虚拟系统的呢?这个时候如果和VMware对比的话
VMware创建系统
-
下载镜像
-
然后利用VMware安装
Docker
他也需要镜像, 但是他不是直接利用镜像进行系统安装。Docker
安装的系统是基于镜像的, 安装的系统是具有基本操作的, 例如安装应用,这个叫容器。 -
镜像
镜像就是一个模版, 可以基于这个镜像创建出很多系统, 可以认为是初始的快照。 -
容器
是基于镜像的, 意思就是, 镜像是怎么样的, 我的容器就是怎么样的, 可以通过镜像启动多个容器。这点就类似我们语言里面的对象, 镜像就像我们写的class
类, 但是你想使用这个类是不是的new
?并且还可以new
多个 这个就是容器啦
Docker创建系统
- 获取镜像、或者自己构建镜像
- 基于镜像直接创建操作系统
Docker镜像加速配置
前面说到,镜像可以是别人写好的 也可以是自己构建的。但是由于别人写的有些不在国内,所以我们需要配置一下中国的镜像,方便资源拉取。
这里使用到的是阿里云进行镜像加速配置的。进入阿里云控制台, 选择容器镜像服务, 在镜像中心下面有个镜像加速器, 选择Mac。我们选择可视化的Docker
配置镜像
复制链接
点开这个之后会看到Daemon
, 下面有一个Registry mirrors
, 把刚刚复制好的镜像添加进去就可以啦。
那我们该如何应用Docker
呢? 请看下一篇,利用Docker
来构建我们的开发环境
参考来源:憧憬在 aoppp.com发布