Docker容器是什么

Fanly 问答 2022-12-12 22:19:20 阅读(...)

Docker容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了docker引擎的服务器上(包括流行的Linux机器、windows机器),也可以实现虚拟化。

Docker 容器是一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何安装了 docker 引擎的服务器上(包括流行的 Linux 机器、windows 机器),也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

Docker 容器 Docker Container

镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间(opens new window)。因此容器可以拥有自己的 root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。也因为这种隔离的特性,很多人初学 Docker 时常常会混淆容器和虚拟机。

前面讲过镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容器存储层。

容器存储层的生存周期和容器一样,容器消亡时,容器存储层也随之消亡。因此,任何保存于容器存储层的信息都会随容器删除而丢失。

按照 Docker 最佳实践的要求,容器不应该向其存储层内写入任何数据,容器存储层要保持无状态化。所有的文件写入操作,都应该使用数据卷(Volume)、或者绑定宿主目录,在这些位置的读写会跳过容器存储层,直接对宿主(或网络存储)发生读写,其性能和稳定性更高。

数据卷的生存周期独立于容器,容器消亡,数据卷不会消亡。因此,使用数据卷后,容器删除或者重新运行之后,数据却不会丢失。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • Docker

    Docker镜像是什么

    Docker镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像 不包含 任何动态数据,其内容在构建之后也不会被改变。
  • Docker

    为什么要使用Docker

    Docker作为一种新兴的虚拟化方式,跟传统的虚拟化方式相比具有众多的优势。Docker对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。
  • Fedora CoreOS 操作系统

    Fedora CoreOS是什么

    Fedora CoreOS(FCOS)是一个针对容器化工作负载的Linux发行版,也是自动更新的最小操作系统,用于安全、大规模地运行容器化工作负载。它目前可在多个平台上使用。
  • CoreOS 操作系统

    CoreOS是什么

    CoreOS是一个基于Linux 内核的轻量级操作系统,它的设计旨在关注开源操作系统内核的新兴使用,用于大量基于云计算的虚拟服务器。为了计算机集群的基础设施建设而生,专注于自动化,轻松部署,安全,可靠,规模化。
  • 铁威马TerraMaster F5-422

    铁威马企业NAS怎么选购

    企业采购 NAS 网络存储不要盲目地追求最新的趋势技术,因为这些技术新则新矣,仍需要经历一段时间的锤炼,才能趋于成熟。
  • UNRAID

    UNRAID有什么优缺点

    UNRAID是基于LINUX slackware的RAID系统,就是带有校验盘(即容错功能)的JBOD。可以做NAS、Docker及VMS虚拟服务器。但是UNRAID Pro需要付费授权,另外就是速度一般。