陈奇网络工作室

Docker|Docker技术基础整理(3)-集装箱生命周期管理

云计算

什么是容器?

容器( Container ) :容器是一种轻量级、可移植的封装APP应用程序的技术,几乎可以在任何地方以相同的方式执行APP应用程序。 当docker运行镜像文件时,生成的对象是容器。 容器相当于执行镜像的实例,并且容器具有特定的生命周期。

文档容器与虚拟机的区别

同一点:

容器与虚拟机一样,共享和使用物理硬件资源。

容器和虚拟机的生命周期比较相似(创建、运行、暂停、关闭等)。

可以在容器和虚拟机上安装各种APP应用程序,如Redis、mysql和nginx。 这意味着在容器中的操作与在虚拟机(操作系统)中的操作相同。

与虚拟机一样,容器存储在主机上。 在linux上,位于/var/lib/docker/containers下

不同点:

的虚拟机的创建、启动和关闭基于完整的操作系统。 虚拟机是一个完整的操作系统。 容器直接在宿主机的内核上执行,本质上是一系列进程的结合。

集装箱重量很轻,虚拟机是重量级的。 首先,容器不需要额外的资源来管理(不需要虚拟机管理程序和来宾操作系统),虚拟机需要增加性能消耗,然后创建、启动或关闭容器就是创建、启动或关闭进程

这意味着可以在指定的硬件上运行更多的容器,也可以直接在虚拟机上运行Docker。

集装箱的生命周期管理

我们先来看看容器的生命周期示意图。

下面的咸鱼简单学习一下容器管理的部分命令。

创建容器( docker create )

命令格式:

docker create [参数]镜像名称[容器执行命令][执行命令时需要提供的参数]

一般参数:

-t分配虚拟终端

-i提供模拟输入。 不提供的话就不能输入默认命令

--name为创建的容器提供容器名称,不提供时随机分配一个

容器启动( docker start )

启动一个或多个容器。

命令格式:文档开始[参数]容器[容器. ]

一般参数:

-a将当前输入和输出连接到容器

-i将当前输入连接到容器

创建并启动容器( docker run ) )。

命令格式:

docker run [“参数”镜像“容器执行命令”“执行命令提供的参数”

一般参数:

-t分配虚拟终端

保持-i输入打开

-d在后台运行容器并打印容器id

-RM容器完成后自动删除容器

注意:因为我们学习docker主要是在我们之后为基于docker的Python开发的服务,所以关于docker run和docker create/start的一些参数的具体区别我不会在文章中介绍。 有疑问的人请参考官方文件。 当然,也欢迎在留言区和咸鱼进行讨论。 在这里简单地记住两个公式就好了。

docker run=dokercreatedockerstart-a

docker run-d=dockercreatedockerstart

在此,建议使用docker run -dti启动所需的容器。

容器暂停( docker pause/unpause ) )。

文档密码将暂停一个或多个容器

docker unpause将启动一个或多个暂停的容器

命令格式:

文档密码/取消密码容器[容器. ]

(“容器封闭”( docker stop ) ) ) )。

关闭一个或多个容器。

docker stop关闭一个或多个容器

命令格式:

文档停止容器[容器. ]

一般参数:

-t关闭前的等待时间,默认为10秒

容器结束( docker kill )

强制立即关闭一个或多个已暂停或正在运行的容器。

命令格式: docker kill [参数]容器[容器. ]

一般参数:

-s指定容器的关闭信号。 默认值为“kill”

重新启动容器( docker restart )

重新启动一个或多个正在运行、暂停、停止或创建的容器。

命令格式:

docker restart [参数]容器[容器. ]

一般参数:

-t关闭之前的等待时间,默认为10秒,实际上是关闭之前的等待时间

删除容器( docker container rm/docker rm )

命令格式:文档容器RM [参数]容器[容器. ]

一般参数:

-f强制删除

-v删除容器的同时也删除容器的数据卷

文件库kill和文件库stop的区别

上面在docker容器的生命周期管理中stop和kill关闭了容器,其中的kill是如何实现强制杀死正在运行的容器的呢?

在此,需要说明下关linux上进程结束的相关信号。 SIGTERM和SIGKILL

SIGKILL信号:无条件结束过程信号。 当接收到此信号时,进程将立即停止,不执行清理和转移操作。 此信号不能被忽略、处理或阻止。 为系统管理员提供了一种可以扼杀任何进程的方法。

SIGTERM信号:程序结束信号。 可以使用kill命令生成。 与SIGKILL不同,它可以阻止SIGTERM信号并退出,从而使程序可以在退出之前保存工作和清理临时文件等。

docker stop首先向进程发送SIGTERM信号,告知进程将关闭。 经过-t指定的等待时间后,立即发出SIGKILL信号,直接关闭容器。

docker kill直接发出SIGKILL信号关闭容器。 但是,也可以修改由-s参数发出的信号。

也可以在docker restart中设置-t等待时间。 等待时间过后马上发送SIGKILL信号,直接关闭集装箱。

因此,如果在等待docker stop时中止执行docker stop,则容器最终不会关闭。 docker kill几乎立即发生,无法撤销。

总结

对于docker容器的生命周期管理,咸鱼踩坑后需要加深理解的部分有docker run/start/create和docker kill/stop/restart两大部分。

关于docker kill和docker stop的区别,请重点看上面的docker kill/stop的区别部分,对于docker run/start/create,是用不同的参数制作的职位

以上是对容器生命周期管理部分咸鱼踩穴的总结。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3