欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Docker入门之-容器(二)

程序员文章站 2022-06-03 11:38:08
...

容器的常规操作


stop/start/restart 容器

容器在 docker host 中实际上是一个进程,docker stop 命令本质上是向该进程发送一个 SIGTERM 信号。如果想快速停止容器,可使用 docker kill 命令,其作用是向容器进程发送 SIGKILL 信号

通过 docker stop 可以停止运行的容器

Docker入门之-容器(二)

 如果想快速停止容器,可使用 docker kill 命令Docker入门之-容器(二)

 对于处于停止状态的容器,可以通过 docker start 重新启动

Docker入门之-容器(二)

 docker restart 可以重启容器,其作用就是依次执行 docker stop 和docker start

Docker入门之-容器(二)

容器可能会因某种错误而停止运行,对于服务类容器,我们通常希望在这种情况下容器能够自动重启,启动容器时设置 --restart 就可以达到这个效果

--restart=always 意味着无论容器因何种原因退出(包括正常退出),就立即重启

Docker入门之-容器(二)

参数的形式还可以是 --restart=on-failure:3,意思是如果启动进程退出代码非0,则重启容器,最多重启3次;

特别需要注意的是:只有当容器的启动进程 退出 时,--restart 才生效;

退出包括正常退出或者非正常退出,这里举了两个例子:启动进程正常退出或发生 OOM,此时 docker 会根据 --restart 的策略判断是否需要重启容器,但如果容器是因为执行 docker stop 或docker kill 退出,则不会自动重启;

pause/unpause 容器

有时我们只是希望暂时让容器暂停工作一段时间,比如要对容器的文件系统打个快照,或者 dcoker host 需要使用 CPU,这时可以执行 docker pause

Docker入门之-容器(二)

处于暂停状态的容器不会占用 CPU 资源,直到通过 docker unpause 恢复运行

 Docker入门之-容器(二)

 删除容器

使用 docker 一段时间后,host 上可能会有大量已经退出了的容器,这些容器依然会占用 host 的文件系统资源,如果确认不会再重启此类容器,可以通过 docker rm 删除;

Docker入门之-容器(二)

docker rm 一次可以指定多个容器,如果希望批量删除所有已经退出的容器,可以执行如下命令:

docker rm -v $(docker ps -aq -f status=exited)

Docker入门之-容器(二)

顺便说一句:docker rm 是删除容器,而 docker rmi 是删除镜像;

创建容器

docker create 创建的容器处于 Created 状态

Docker入门之-容器(二)

通过docker ps -a查看

Docker入门之-容器(二)

 通过docker start  启动容器Docker入门之-容器(二)

 最后的最后,借用cloudMan的一张图来讨论了容器各种状态之间是如何转换的:

Docker入门之-容器(二)