#yyds干货盘点#Docker三大核心组件

网友投稿 410 2022-10-21

#yyds干货盘点#Docker三大核心组件

要在Docker宿主机上拉起并运行Docker容器,与3个组件密切相关,分别是Docker镜像、Docker镜像仓库、Docker容器。

Docker镜像(image)

镜像是容器的基石,容器基于镜像启动,镜像就像是容器的源代码,保存了用于容器启动的各种条件(应用代码,二方库、环境变量和配置文件等)。

Docker运行(run)一个容器前,在本地需要存在对应的镜像。如果本地不存在,则从默认的镜像仓库下载对应的镜像(默认的镜像仓库是Docker Hub公共服务器中的仓库,也可以改为国内或者公司自己搭建的镜像仓库)。如果没有在仓库名称后指定具体的镜像标签(tag),则Docker会默认拉取标签为latest的镜像。

Dockerfile是一个文本格式的配置文件,利用给定的指令描述基于某一个父镜像(from image×××)创建新镜像的过程。编辑好Dockerfile文件后,可以通过docker build命令创建本地镜像。在使用docker build命令通过Dockerfile创建镜像时,会产生一个build上下文(context)。

Docker镜像仓库(registry)

Docker镜像仓库用于保存用户创建的镜像,仓库分为公有和私有两种。Docker公司自己提供了仓库Docker Hub,可以在Docker Hub上创建账户,保存并分享自己创建的镜像,当然也可以架设私有镜像仓库。

由于网络原因,从Docker Hub(该仓库的服务器在国外)上下载镜像的速度太慢,或者Docker镜像拉取不下来,需要配置镜像加速器(要求Docker版本1.10.0以上)。我们一般会选择国内的某一家云服务商提供的镜像仓库服务。

Docker容器(container)

容器是Docker的执行单元(运行时),通过镜像启动,容器中可以运行客户端的多个进程。如果说镜像是Docker生命周期的构建和打包阶段,那么容器则是启动和执行阶段。

容器是镜像的一个运行实例,不同的是它带有额外的可写层。是独立运行的一个或一组应用,以及它们所运行的必需环境。一个容器实例就是宿主机上的一个独立进程。其拥有独立的文件系统、网络和进程树。

新建容器的方式有两个:一个是使用dockercontainer run命令,另一个是使用docker container create命令。这两个命令的不同之处在于,create命令新建的容器处于停止状态,还需要使用dockercontainer start命令来启动它。

Docker内存控制内存异常(Out Of Memory Exception,OOME)在Linux系统上,如果内核探测到当前宿主机已经没有可用内存,那么会抛出一个OOME,并且会开启killing去终止一些进程。

容器最多能使用的CPU时间有两种限制方式:一是有多个CPU密集型的容器竞争CPU时,设置各个容器能使用CPU时间的相对比例;二是以绝对的方式设置容器在每个调度周期内最多能使用的CPU时间。

Docker 提供的内存限制功能包括:容器能使用的内存和交换分区大小、容器的核心内存大小、容器虚拟内存的交换行为、容器内存的软性限制、是否终止占用过多内存的容器、容器被终止的优先级。

Docker还提供了来满足服务访问的基本需求:一个是允许映射容器内应用的服务端口到本地宿主机;另一个是通过互联机制实现多个容器间通过容器名来快速访问。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于容器配置私有Registry
下一篇:五分钟带你快速学习Spring IOC
相关文章

 发表评论

暂时没有评论,来抢沙发吧~