容器介绍
容器是软件的可执行单元,其中以常见方式打包应用程序代码及其库和依赖项,以便代码可以在任何地方运行,无论是在桌面、传统 IT 还是云上。容器是一种将应用程序及其依赖项打包到一个独立、可移植的容器中的技术。这个容器包含了应用程序的所有运行时所需的组件,例如代码、运行时环境、库和系统工具。
容器的优点
1.传统应用的部署
2.容器化应用的部署
可以保证容器中应用和组件依赖于原始环境中一摸一样,实现了:一次封装 到处运行
问题:容器的本质是什么?
容器的本质是进程。容器镜像就是这个系统的“.exe”安装包
Docker跟原有的工具区别:
Docker对服务端开发/部署带来的变化:
Docker的优势:
容器和VM的主要区别:
云计算和虚拟化 和 容器化
Docker 架构
Docker包括三个基本概念:
镜像(Image):Docker镜像(image),相当于一个root文件系统。
容器(Container):镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行的实体。镜像可以被创建、启动、停止、删除、暂停等等。
仓库(Repository):仓库可看成一个代码控制中心,用来保存镜像。
Docker容器使用Docker镜像来创建。
概念 | 说明 |
Docker 镜像(Images) | Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统。 |
Docker 容器(Container) | 容器是独立运行的一个或一组应用,是镜像运行时的实体。 |
Docker 客户端(Client) | Docker 客户端通过命令行或者其他工具使用 Docker SDK ( https://docs.docker.com/develop/sdk/) 与 Docker 的守护进程通信。 |
Docker 主机(Host) | 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 |
Docker Registry | Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库。 Docker Hub( https://hub.docker.com) 提供了庞大的镜像集合供使用。 一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。 通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过<仓库名>:<标签>的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以latest作为默认标签。 |
Docker Machine | Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 |
Docker Run的流程图
Docker 为什么比VM快?
容器的三大组成要素:
Docker仓库:
用来保存镜像,可以理解为代码控制中的代码仓库。同样的,Docker仓库也有公有和私有的概念。
镜像可以发布为不同的版本,这种机制我们称之为标签(Tag)
Tag:标签
我们一般在拉取镜像的时候在镜像名称后跟镜像的Tag