容器技术:容器技术是基于虚拟化技术的,它使应用程序从一个计算机环境快速可靠地转移到另一个计算机环境中,可以说是一个新型地虚拟化技术。
一、docker容器
Docker:是一个开源地容器引擎Docker 是一种轻量级的容器化技术,其主要原理是利用 Linux 操作系统的 cgroups、namespaces 和 AUFS 等特性来虚拟化系统资源,使得应用程序可以被封装成一个可移植、可靠、可复制的容器,在不同的环境中运行且无需担心环境差异导致的兼容性问题。
(Build Once,Run Anywhere)
Dockerfile
Dockerfile 是一组精确的指令,说明如何创建新的 Docker 镜像。为基于它运行的容器设置默认值等等。它是一个文本文档,其中包含用户可以在命令行上调用以组合图像的所有命令。因此,Docker 可以通过读取 Dockerfile 中的指令自动构建镜像。
Docker Image(映像)
Docker Image 可以比作用于创建 Docker 容器的只读模板。Image是一个蓝图,可以从中启动任意数量的全新容器。没有“当前运行的命令”保存在Image中。当您启动容器时,有点像在关闭电源后启动机器。
Docker Container(容器)
它是 Docker Image 的运行实例,因为它们包含运行应用程序所需的整个包。
想象一下,您想运行一个与系统上其他所有内容隔离的命令。它应该只访问它被允许访问的资源,并且不知道机器上还有其他任何东西。在容器内运行的进程认为它是唯一的进程,并且只能看到一个准系统的 Linux 发行版,这些内容在图像中描述。
运行容器的机器不应该过多关心里面的内容,而 dockerized 应用程序并不关心它是在Kubernetes 集群还是单个服务器上——它无论如何都能运行。
一个容器一次可以运行多个进程。您可以将许多服务打包到一个容器中,并让它们并排运行。
当一个 Docker 容器被删除时,重新启动镜像将启动一个新的容器,而不会对之前运行的容器进行任何更改——这些更改将丢失。
容器vs虚拟机
二、Docker的核心概念
2.1、镜像(lmage)
Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为是一个面向Docker容器引擎的只读模板;
Docker提供了简单的机制来创建和更新现有的镜像,用户也可以从网上下载已经做好的应用镜像来直接使用。
2.2、容器(Container)
Docker的容器时从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每一个容器都是相互隔离、互不可见的,可以保证平台的安全性。
还可以把容器看作是一个简易版的Linux环境,Docker利用容器来运行和隔离应用。
2.3、仓库(Repository)
Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像后,可以使用push命令将它上传到公共仓库或者私有仓库,下次使用可以直接从仓库上pull下来;
仓库注册服务器(Repository)是存放仓库的地方,其中包含多个仓库,每个仓库存放不同镜像用TAG标签来区分
目前最大的公共仓库是Docker Hub。