加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

看完这篇,妈妈还会担心你Docker入不了门?

发布时间:2019-06-15 06:27:52 所属栏目:评测 来源:苏静
导读:【51CTO.com原创稿件】上周对象突然心血来潮说想养个小宠物,我问想养啥她又说随便,你看着办!!! 这我真的比较难办啊!但是咱们程序员能有个对象就不错了,还不赶紧宠着,我只能照办咯! 我去到了一家宠物店,半天也没有找到合适的目标。正在我犹豫彷徨

仓库

右边部分是注册仓库,在远古时代做开发的都知道,我们以前需要一个第三方包的时候需要去网上下载对应的 Jar 包,很麻烦不说,还容易下的包是不稳定的版本。

有了 Maven 之后,我们只要在 Maven 配置文件中引入对应的依赖,就可以直接从远程仓库中下载对应版本的 Jar 包了。

Docker 中的仓库与 Maven 的仓库是一个概念,可以远程下载常用的镜像,也可以 Push 包到远程仓库(如图中的 Redis、Nginx 等镜像),同一个镜像又可以有多个版本,在 Docker 中称为 Tag!

镜像&容器

前面我们有多次提到镜像和容器,这是 Docker 里面很核心的两个概念。那镜像和容器分别是什么呢?镜像和容器的关系是什么呢?

①镜像

官方给出的定义是:Docker 镜像是一个只读模板,可以用来创建 Docker 容器。

镜像是一种轻量级的、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件。

它包含运行某个软件所需要的所有的内容,包括代码、运行时、库、环境变量、配置文件等。

我们开发的 Web 应用需要 JDK 环境、需要 Tomcat 容器、需要 Linux 操作系统,那我们可以把我们所需要的一切都进行打包成一个整体(包括自己开发的 Web 应用+JDK+Tomcat+CentOS/Ubuntu+各种配置文件)。

打包后的镜像在某台机器上能运行,那它就能够在任何装有 Docker 的机器上运行。

任何镜像的创建会基于其他的父镜像,也就是说镜像是一层套一层,比如一个 Tomcat 镜像,需要运行在 CentOS/Ubuntu 上。

那我们的 Tomcat 镜像就会基于 CentOS/Ubuntu 镜像创建(在后面的操作部分我们可以通过命令查看)。

这样的结构就类似于我们吃的洋葱,如果你愿意一层一层一层地剥开我的心~

看完这篇,妈妈还会担心你Docker入不了门?

②容器

官方给出的定义是:Docker 的容器是用镜像创建的运行实例,Docker 可以利用容器独立运行一个或一组应用。

我们可以使用客户端或者 API 控制容器的启动、开始、停止、删除。每个容器之间是相互隔离的。

上一步我们构建的镜像只是一个静态的文件,这个文件需要运行就需要变为容器,我们可以把容器看做是一个简易版的 Linux 系统和运行在其中的应用程序!

就是前面看到的鲸鱼背上的一个一个的集装箱,每个集装箱都是独立的!

③镜像与容器关系

上面的概念很抽象,可以理解为容器就是镜像的一个实例,相信大家都写过类似下面的代码:

  1. public void Dog extends Animal{   
  2.     ...... 
  3. }   
  4. ...... 
  5. Dog dog = new Dog() 

我们在代码中定义了一个 Dog 类,这个类就相当于一个镜像,可以根据这个类 New 出很多的实例,New 出来的实例就相当于一个个的容器。镜像是静态的文件,而容器就是有生命的个体!

Dog 类可以继承父类 Animal,如果不显式的指定继承关系,Dog 类就默认继承 Object 类。

同样上面也说到过 Docker 中的镜像也有继承关系,一个镜像可以继承其他的镜像创建,添加新的功能!

看到这里的你是不是对 Docker 有了更多的了解了呢?我们再回头看看百度百科对 Docker 的描述,可能你又会有更深的印象:

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读