Docker 镜像,容器,仓库概念(笔记)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fxbin123/article/details/84112777

记录一下什么是docker, 以及镜像,容器,仓库概念的学习笔记

什么是docker

官网的一张图

在这里插入图片描述

名词性说明(摘自百度百科):

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

官方性说明:

Docker 使用 Google 公司推出的 Go 语言进行开发和实现,在 Linux 操作系统上提供了一个软件抽象层和操作系统层虚拟化的自动管理机制。Docker 利用了 Linux 的资源分托机制(cgroups 以及命名空间)来创建独立的软件容器。Linux 对命名空间的支持完全隔离工作环境中的应用程序,包括进程树,网络,用户 ID 与挂载文件系统;而 cgroups 则提供了资源隔离,包括 CPU,内存等。Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大简化了容器的创建和维护,使得 Docker 技术比虚拟机技术更为轻便快捷。

通俗化说明:

英文翻译: Docker 码头工人,容器,容器技术,船坞工人

Docker 就像一个码头工人,把可以运行的 Linux 系统装载到一个个容器(container)里,这些容器就像一个个“装载了 Linux 系统”的集装箱。就像每个集装箱都有自己的货物一样,每个容器都像一个独立的 Linux 系统一样可以运行指定的程序。比如,一个容器可以作为 Web 服务器,另一个容器作为数据库服务器。

集装箱之间互不影响。同样,容器之间也都是独立的,一个容器不能操作另一个容器的资源,因此可以很好地隔离运行环境。每个容器都像一个独立的操作系统,拥有操作系统运行需要的所有配置和代码

Docker 镜像(Image)

  • 镜像(Image)就是一堆只读层(read-only layer)的统一视角
  • Docker 镜像,类似于面向对象编程中的“类”,使用 Docker 镜像可以拉起任意数量的容器,即镜像是运行容器的模板;

docker 容器(Container)

  • 容器(container)的定义和镜像(image)几乎一模一样,也是一堆层的统一视角,唯一区别在于容器的最上面那一层是可读可写的。
  • 容器,类似于面向对象编程中的“对象”,它是由某个镜像生成的一个具体实例;
  • 可以把容器看做是一个简易版的 Linux(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
  • docker 利用容器来运行应用,他可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台。

docker 仓库(Resoisitory)

  • Docker 仓库是一个集中存储和分发镜像的服务,你可以建立自己的私有仓库,也可以使用共有仓库,比如 Docker Store。你可以从仓库里搜索你需要的镜像,也可以把你自己构建的镜像分享到仓库供别人下载使用。
  • 仓库是集中存放镜像文件的场所,类似 git 代码仓库等。
  • 仓库(Respository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器一般存放多个仓库,每个仓库又有多个镜像,每个镜像又有不同的标签(tag)。
  • 仓库分为公开仓库(public)和私有仓库(private)两种形式。
  • 最大的公开仓库是 Docker Hub,国内的公开仓库有阿里云等。
  • 仓库的概念类似 Git,仓库注册服务器可以理解为 GitHub 这种托管服务。

参考文章: http://dockone.io/article/783

猜你喜欢

转载自blog.csdn.net/fxbin123/article/details/84112777