乐趣区

前端也要学Docker啊

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)才能破解下面的图:

上图分了三个块:

  • 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 具体安装参考官网文档:CentOS、MacOS、Windows

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

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

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

退出移动版