Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

前端也要学Docker啊! #8

Closed
Vibing opened this issue Jun 15, 2019 · 0 comments
Closed

前端也要学Docker啊! #8

Vibing opened this issue Jun 15, 2019 · 0 comments

Comments

@Vibing
Copy link
Owner

Vibing commented Jun 15, 2019

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

关于Docker

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

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

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

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

WX20190615-112209@2x

图片是一条鲸鱼游在海里 身上载着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
代码并让它运行起来,敬请期待

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant