7

Docker这两年非常火热,也是各大厂必用的好东西,这两天没事玩了一下感觉很不错,学起来也不难 写下此文共勉学习。

关于Docker

Docker 可理解为跑在宿主机上的非常精简、小巧、高度浓缩的虚拟机。 它可以将容器里的进程安稳的在宿主机上运行。

Docker重要的三个概念必须要知道:

  • Image: 镜像
  • Container: 容器
  • Repository: 镜像仓库

为了好理解 我们从 Docker 的 Logo 入手:

图片描述

图片是一条鲸鱼游在海里 身上载着N个集装箱,下面是Docker字样。OK 图片描述完毕

图片给出的信息:

  1. 海:宿主机
  2. 集装箱:Docker容器
  3. 鲸鱼+集装箱:Docker技术
也就是说:Docker容器(集装箱)里可以存放着我们写的代码,然后 Docker 载着代码在大海(宿主机)里运行

之所以用鲸鱼,可能是它在海里没什么天敌 体型又巨大而且游泳速度很快,毕竟Docker使用GO语言写的呢。

镜像(Image)、容器(Container)、仓库(Repository)

上文中只说了Container,而ImageContainer的关系 就像实例的关系:

var p1 = new Person(); 

即:p1是容器、Person是镜像。 至于仓库嘛 就相当于github的代码仓库,github是存代码的仓库,相应的 Docker 仓库就是存放镜像的。

只有理解上面的镜像(Image)、容器(Container)、仓库(Repository)才能破解下面的图:

WX20190615-102950

上图分了三个块:

  • Client(客户端 命令终端)
  • DOCKER_HOST(Docker daemon)
  • Resistry(镜像仓库)

从左往右看,Client 中执行了几个命令,这些命令都与 Docker daemon(Docker的守护进程) 有交互,然后 Docker daemon 会根据相应命令做对应的动作。

  1. docker build:表示创建了一个 Image,这是一条虚线 ,虚线从开始到结束指向了中间的Images框里。
  2. docker pull:表示从仓库中拉取 Image,就像 github 里 pull 代码一样。docker daemon 接收到 pull 指令,从 Registry(远程镜像仓库) 里找到对应镜像(这里是Nginx) 然后拉倒本地的 Images 中。
  3. docker run:向 daemon 发出运行指令,daemon 收到指令后去本地的 Images 中找对应镜像,如果能找到就会使用该镜像生成一个容器,如果没找到则会默认执行 docker pull 从仓库里下载,然后再生成容器,如果容器中运行着我们的代码,那么当容器运行后 代码也跟着 run 起来了

Docker安装

Docker分社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)
社区版是免费的,所以我们用CE版就可以了。
Docker CE具体安装参考官网文档:CentOSMacOSWindows

下载完成后 打开终端运行:docker run hello-world 成功运行则表示安装成功了。

下篇文章《使用Docker部署NodeJs应用》会说Docker常用的命令及使用Docker部署NodeJs
代码并让它运行起来,敬请期待

接触 Docker 时间较短,如果理解不对的地方烦请大佬给予指导,多谢啦~


alwaysVe
1.9k 声望162 粉丝

前进