看完这篇,妈妈还会担心你Docker入不了门?
仓库 右边部分是注册仓库,在远古时代做开发的都知道,我们以前需要一个第三方包的时候需要去网上下载对应的 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 可以利用容器独立运行一个或一组应用。 我们可以使用客户端或者 API 控制容器的启动、开始、停止、删除。每个容器之间是相互隔离的。 上一步我们构建的镜像只是一个静态的文件,这个文件需要运行就需要变为容器,我们可以把容器看做是一个简易版的 Linux 系统和运行在其中的应用程序! 就是前面看到的鲸鱼背上的一个一个的集装箱,每个集装箱都是独立的! ③镜像与容器关系 上面的概念很抽象,可以理解为容器就是镜像的一个实例,相信大家都写过类似下面的代码:
我们在代码中定义了一个 Dog 类,这个类就相当于一个镜像,可以根据这个类 New 出很多的实例,New 出来的实例就相当于一个个的容器。镜像是静态的文件,而容器就是有生命的个体! Dog 类可以继承父类 Animal,如果不显式的指定继承关系,Dog 类就默认继承 Object 类。 同样上面也说到过 Docker 中的镜像也有继承关系,一个镜像可以继承其他的镜像创建,添加新的功能! 看到这里的你是不是对 Docker 有了更多的了解了呢?我们再回头看看百度百科对 Docker 的描述,可能你又会有更深的印象: (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |