首页  >  文章  >  运维  >  docker容器和仓库的区别是什么

docker容器和仓库的区别是什么

WBOY
WBOY原创
2022-02-07 14:44:172980浏览

区别:1、容器是从镜像创建的运行实例,镜像启动后的一个实例称为容器,是独立运行的一个或一组应用;2、仓库是集中存放镜像文件的场所,仓库注册服务器一般存放多个仓库,每个仓库又有多个镜像,每个镜像又有不同的标签。

docker容器和仓库的区别是什么

本教程操作环境:linux7.3系统、docker-1.13.1版、Dell G3电脑。

docker容器和仓库的区别是什么

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,每个容器内运行一个应用,不同的容器相互隔离,容器之间不会有任何接口(类似 iPhone 的 app),容器之间也可以建立通信机制。更重要的是容器性能开销极低。容器的创建和停止都十分快速,容器自身对资源的需求也十分有限。

Docker 引擎的基础是 Linux 容器(Linux Containers, LXC)技术。

Docker 镜像

Docker镜像(Image)类似于虚拟机镜像,可以将它理解为一个面向 Docker 引擎的只读的模板。包含了文件系统。

例如:一个镜像可以只包含一个完整的 Ubuntu 操作系统环境,可以把它称为一个 Ubuntu 镜像。镜像里面仅安装了 Apache 应用程序(或用户需要的其他软件)。可以把它称为一个 Apache 镜像。

镜像是创建 Docker 容器的基础。通过版本管理和增量的文件系统,Docker 提供了一套十分简单的机制来创建和更新现有的镜像,用户甚至可以从网上下载一个已经做好的应用镜像,并直接使用。

Docker 容器

Docker容器(Container)类似于一个轻量级的沙箱,Docker 利用容器来运行和隔离应用。

容器是从镜像创建的应用运行实例。可以将其启动、开始、停止、删除,而这些容器都是彼此相互隔离的、互不可见的。

可以把容器看做是一个简易版的 Linux 系统环境 (包括 root 用户权限、进程空间、用户空间和网络空间等) 以及运行在其中的应用程序打包而成的盒子。

镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。

Docker 仓库

Docker仓库(Repository)类似于代码仓库,它是 Docker 集中存放镜像文件的场所。

有时候会看到有资料将 Docker 仓库和仓库注册服务器 (Registry) 混为一谈,并不严格区分。实际上,仓库注册服务器是存放仓库的地方,其上往往存放着多个仓库。每个仓库集中存放某一类镜像,往往包括多个镜像文件,通过不同的标签 (tag) 来进行区分。

例如存放 Ubuntu 操作系统镜像的仓库称为 Ubuntu 仓库,其中可能包括 14.04、12.04 等不同版本的镜像。

根据所存储的镜像公开分享与否,Docker 仓库可以分为公开仓库 (Public) 和私有仓库 (Private) 两种形式。

目前,最大的公开仓库是官方提供的 Docker Hub,其中存放了数量庞大的镜像供用户下载。国内不少云服务提供商 (如时速云、阿里云等) 也提供了仓库的本地源,可以提供稳定的国内访问。

当然,用户如果不希望公开分享自己的镜像文件,Docker 也支持用户在本地网络内创建一个只能自己访问的私有仓库。当用户创建了自己的镜像之后就可以使用 push 命令将它上传到指定的公有或者私有仓库。这样用户下次在另外一台机器上使用该镜像时,只需要将其从仓库上 pull 下来就可以了。

镜像、容器、仓库的区别

  • docker 镜像(Images)

一个只读模板,可以用来创建容器,一个镜像可以创建多个容器;

Docker 提供了一个很简单的机制来创建和更新现有的镜像,甚至可以直接从其他人那里获取做好的镜像直接使用;

可以理解为 Java 中的类;

  • docker 容器(Container)

容器是从镜像创建的运行实例,也就是镜像启动后的一个实例称为容器,是独立运行的一个或一组应用;

Docker 利用容器来运行应用,他可以被启动、开始、停止、删除,每个容器都是相互隔离的、保证安全的平台;

可以把容器看做是一个简易版的 Linux(包括 root 用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序;

可以理解为 Java 中通过类创建的实例;

  • docker 仓库(Resoisitory)

仓库是集中存放镜像文件的场所,类似 git 代码仓库等;

仓库(Respository)和仓库注册服务器(Registry)是有区别的。仓库注册服务器一般存放多个仓库,每个仓库又有多个镜像,每个镜像又有不同的标签 tag;

仓库分为公开仓库(public)和私有仓库(private)两种形式;

最大的公开仓库是 Docker Hub,国内的公开仓库有阿里云等;

可以在本地网络创建一个私有仓库;

当创建好自己的镜像后,可以通过 push 命令把它上传到公开或私有仓库;

仓库的概念类似 Git,仓库注册服务器可以理解为 GitHub 这种托管服务;

  • docker 主机(Host)

一个物理或虚拟的机器用来执行 Docker 守护进程和容器。

  • docker客户端(Client)

客户端通过命令行或其他工具使用 Docker。

推荐学习:《docker视频教程

以上是docker容器和仓库的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn