php网站开发兼容怎么设置,产品销售型企业网站有哪些,html展示wordpress,如何盗取网站容器生命周期
下图显示了容器生命周期的简化状态。
CreatedRunningPausedStoppedDeleted
现在让我们逐一讨论容器生命周期的每个状态#xff1a;
创建状态#xff08;Created#xff09;
这是容器生命周期的第一个状态#xff0c;在这个阶段#xff0c;容器被创建但…容器生命周期
下图显示了容器生命周期的简化状态。
CreatedRunningPausedStoppedDeleted
现在让我们逐一讨论容器生命周期的每个状态
创建状态Created
这是容器生命周期的第一个状态在这个阶段容器被创建但尚未启动。
通过运行docker create命令我们可以在指定的镜像上创建一个薄的可写层并准备运行主进程由 CMD 和/或 ENTRYPOINT 定义。需要注意的是在创建状态下容器已经存在但并没有开始执行。
例如以下命令使用nginx:alpine镜像创建一个名为app1的容器
docker create --name app1 nginx:alpine如果创建成功终端会打印出新容器的ID。
运行状态Running
顾名思义运行状态表示容器正在主动运行。在这个阶段主进程已经开始执行。对于已经创建或停止的容器我们可以使用docker start命令来启动它。
例如要启动之前创建的app1容器我们可以运行
docker start app1如果你不想先创建再启动容器可以直接使用docker run命令这样可以同时完成这两个步骤。以下命令将在后台创建并启动一个名为app2的容器
docker run -d --name app2 nginx:alpine暂停状态Paused
在某些情况下我们可能需要暂停正在运行的容器。可以使用docker pause命令来暂停指定容器中所有的进程。
暂停时容器的状态保持完整包括磁盘和内存的内容。
需要注意的是暂停的容器并不知道自己已经被暂停。
要暂停app1可以运行
docker pause app1要恢复暂停的容器我们可以使用docker unpause命令
docker unpause app1
停止状态Stopped
停止状态表示容器不再主动运行其主进程。在该状态下容器的磁盘部分会保留下来但内存部分会被清除。这是暂停状态和停止状态之间的主要区别。
容器可以通过四种主要方式停止
使用docker stop命令。使用docker kill命令。当主容器进程退出或完成时。遇到“内存不足异常”OOME时。
让我们分别讨论一下 这几种方式。
1. 使用docker stop命令
此命令非常简单
docker stop app1当执行此命令时主容器进程会接收到一个 SIGTERM 信号允许其安全地关闭。如果在默认的宽限期通常为 10 秒内进程没有结束系统会强制发送一个 SIGKILL 信号立即终止进程。
2. 使用docker kill命令
与docker stop不同docker kill直接将SIGKILL信号发送到主容器进程
docker kill app2这意味着docker stop允许容器安全终止在宽限期内而则docker kill立即终止进程。docker kill还可以使用–signal或-s发送任何信号而不仅仅是 SIGKILL。例如发送 SIGINT 信号
docker kill -s SIGINT app13. 当主进程退出/完成时
如果容器的主进程已退出或完成则容器可以自动停止。
这可能是因为主进程遇到异常、中断或者在某个时刻执行的任务完成而不是像服务器那样无限循环。例如
docker run alpine echo hi在此命令中echo hi在 alpine 容器内执行打印“hi”后立即退出导致容器自动停止。
4. 当遇到“内存不足异常”OOME时
如果容器尝试使用超过系统可用内存的数量可能会遇到内存不足异常OOME。在这种情况下某些容器甚至 Docker 守护进程可能会被加载终止。为了避免这种情况确保应用在拥有足够内存的主机上运行是非常重要的。可以通过以下命令限制容器的最大内存使用
docker run -m 50m redis:alpine通过这个命令Redis容器的内存使用不会超过50MB超出部分可能会导致OOME。
已删除状态Deleted
对于状态或停止状态的容器可以使用docker rm命令删除。这将导致与容器相关的所有数据被删除包括进程、文件系统、卷和网络映射创建。例如要删除已经停止的app1容器可以运行
docker rm app1如果容器正在运行或暂停时尝试删除会收到错误提示说明容器需要先停止。如果您确定要强制删除正在运行的容器可以使用
docker rm -f app1容器生命周期高级部分