第 4 章 容器 - 025 - 容器常用操作

容器常用操作

stop/start/restart 容器

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

 1 [email protected]:~# docker ps
 2 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
 3 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 3 days           80/tcp                   myhttp
 4 fa7407d1b483        ubuntu              "/bin/bash -c ‘while…"   3 days ago          Up 3 days                                    jolly_kirch
 5 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days           0.0.0.0:5000->5000/tcp   vigilant_swartz
 6 [email protected]:~#
 7 [email protected]:~# docker stop fa7407d1b483
 8 fa7407d1b483
 9 [email protected]:~# docker ps
10 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
11 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 3 days           80/tcp                   myhttp
12 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days           0.0.0.0:5000->5000/tcp   vigilant_swartz
13 [email protected]:~#

容器在 docker host 中实际上是一个进程,docker stop 命令本质上是向该进程发送一个 SIGTERM 信号。

如果想快速停止容器,可使用 docker kill 命令,其作用是向容器进程发送 SIGKILL 信号。

 1 [email protected]:~# docker ps
 2 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
 3 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 3 days           80/tcp                   myhttp
 4 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days           0.0.0.0:5000->5000/tcp   vigilant_swartz
 5 [email protected]:~#
 6 [email protected]:~# docker kill myhttp
 7 myhttp
 8 [email protected]:~#
 9 [email protected]:~# docker ps
10 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
11 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days           0.0.0.0:5000->5000/tcp   vigilant_swartz
12 [email protected]:~#

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

docker start 会保留容器的第一次启动时的所有参数。

1 [email protected]:~# docker start myhttp
2 myhttp
3 [email protected]:~# docker ps
4 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
5 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 3 seconds        80/tcp                   myhttp
6 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days           0.0.0.0:5000->5000/tcp   vigilant_swartz
7 [email protected]:~#

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

容器可能会因某种错误而停止运行。

对于服务类容器,通常希望在这种情况下容器能够自动重启。

启动容器时设置 --restart 就可以达到这个效果。

1 [email protected]:~# docker run -d --restart=always httpd
2 599ffc950752e832275be369ce6f8c6cffff526e8241c760b971db11b46df818
3 [email protected]:~# 

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

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

pause/unpause 容器

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

 1 [email protected]:~# docker ps
 2 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
 3 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 5 minutes        80/tcp                   myhttp
 4 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days           0.0.0.0:5000->5000/tcp   vigilant_swartz
 5 [email protected]:~# docker pause myhttp
 6 myhttp
 7 [email protected]:~# docker ps
 8 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS                    NAMES
 9 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 5 minutes (Paused)   80/tcp                   myhttp
10 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days               0.0.0.0:5000->5000/tcp   vigilant_swartz
11 [email protected]:~#

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

1 [email protected]:~# docker unpause myhttp
2 myhttp
3 [email protected]:~# docker ps
4 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
5 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 6 minutes        80/tcp                   myhttp
6 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days           0.0.0.0:5000->5000/tcp   vigilant_swartz
7 [email protected]:~#

删除容器

使用 docker 一段时间后,host 上可能会有大量已经退出了的容器。

 1 [email protected]:~# docker ps -a
 2 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                    NAMES
 3 599ffc950752        httpd               "httpd-foreground"       5 minutes ago       Exited (137) 3 minutes ago                            epic_bohr
 4 07de97f97680        busybox             "sh"                     8 hours ago         Exited (0) 8 hours ago                                lucid_franklin
 5 c44dc8090486        ubuntu              "/bin/bash -c ‘while…"   2 days ago          Exited (137) 2 days ago                               blissful_joliot
 6 d7534aebaf54        ubuntu              "/bin/bash -c ‘while…"   2 days ago          Exited (137) 2 days ago                               nifty_wright
 7 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 7 minutes                 80/tcp                   myhttp
 8 d32b4710507d        ubuntu              "/bin/bash -c ‘while…"   3 days ago          Exited (137) 3 days ago                               trusting_panini
 9 fa7407d1b483        ubuntu              "/bin/bash -c ‘while…"   3 days ago          Exited (137) 9 minutes ago                            jolly_kirch
10 8b312e89208b        ubuntu              "pwd"                    3 days ago          Exited (0) 3 days ago                                 frosty_williams
11 1b4e997bcfd3        ubuntu              "pwd"                    3 days ago          Exited (0) 3 days ago                                 sad_brahmagupta
12 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days                    0.0.0.0:5000->5000/tcp   vigilant_swartz
13 [email protected]:~#

这些容器依然会占用 host 的文件系统资源,如果确认不会再重启此类容器,可以通过 docker rm 删除。

1 [email protected]:~# docker rm 599ffc950752
2 599ffc950752
3 [email protected]:~#

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

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

 1 [email protected]:~# docker rm -v $(docker ps -aq -f status=exited)
 2 07de97f97680
 3 c44dc8090486
 4 d7534aebaf54
 5 d32b4710507d
 6 fa7407d1b483
 7 8b312e89208b
 8 1b4e997bcfd3
 9 [email protected]:~# docker ps -a
10 CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
11 8b62217b8d1d        httpd               "httpd-foreground"       3 days ago          Up 9 minutes        80/tcp                   myhttp
12 f27eb6348026        registry:2          "/entrypoint.sh /etc…"   4 days ago          Up 4 days           0.0.0.0:5000->5000/tcp   vigilant_swartz
13 [email protected]:~#
  • docker rm 是删除容器
  • docker rmi 是删除镜像

--------------------引用来自-------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587651&idx=1&sn=787c294f16f32a7343e202254c8241c0&chksm=8d3080daba4709cc8e90a33bc93bdf6abdc8e9d6c122cc65256d5bc7d945eba1814d1a5db573&scene=21#wechat_redirect

原文地址:https://www.cnblogs.com/gsophy/p/10287777.html

时间: 2024-11-09 02:15:40

第 4 章 容器 - 025 - 容器常用操作的相关文章

容器常用操作 - 每天5分钟玩转 Docker 容器技术(25)

前面讨论了如何运行容器,本节学习容器的其他常用操作. stop/start/restart 容器 通过 docker stop 可以停止运行的容器. 容器在 docker host 中实际上是一个进程,docker stop 命令本质上是向该进程发送一个 SIGTERM 信号.如果想快速停止容器,可使用 docker kill 命令,其作用是向容器进程发送 SIGKILL 信号. 对于处于停止状态的容器,可以通过 docker start 重新启动. docker start 会保留容器的第一次

docker容器的常用操作

1.创建容器 Docker的容器十分轻量级,用户可以随时创建或删除容器. 新建容器:docker create Example:docker create –ti ubuntu 说明:使用docker create命令创建的容器处于停止状态,可以使用docker start命令启动它. 新建并启动容器:docker run Example: docker run ubuntu /bin/echo "Hello World" 说明: 等价于先执行docker create命令,再执行do

C++primer(第五版)第九章 顺序容器(容器的运用及其部分习题解答,C++11特性总结,重点章节内容较多)

顺序容器:为程序员提供了控制元素存储和访问顺序的能力.(无序容器)           1.顺序容器的概述           A.顺序容器的类型           vector:可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢.          deque:双端队列.支持快速随机访问.在头尾位置插入/删除速度很快.           list:双向链表.只支持双向顺序访问.在list中任何位置进行插入/删除操作速度都很快.          forword_list

读《Spring-技术内幕》-第二章:IoC容器的实现-2

IoC容器系列的设计与实现 概要 博客介绍了BeanFactory这个容器的基本接口,如getBean(String name),containsBean(String name)等等,但是这些接口并没有具体的实现,因此给出了XmlBeanFactory容器的实现过程,还用编程的方式使用了DefaultListableBeanFactory这个容器,成功得获得了在BeanDefinition中定义的一个Bean.通过编程式的使用,让我们明白IoC容器中的关键的类之间的相互依赖关系,如Resour

Docker入门(二):容器与镜像常用指令

零.docker常用命令 #镜像名 版本标签 镜像id 创建时间 镜像大小 REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest fce289e99eb9 6 months ago 1.84kB docker version/info #查看版本/信息 docker --help #查看说明文档 docker logs -f -t --tail 日志条数 容器ID #查看容器日志 docker inspect #获取容器/镜像的元数据 一

第九章:顺序容器

一.顺序容器概述:一个容器就是一些特定类型对象的集合 1.顺序容器类型:vector.deque.list.forward_list.array.string string和vector将元素保存在连续的内存空间,所以用下标访问很快,但是在中间位置添加或删除元素很耗时 list和forward_list在任何位置添加和删除操作都很快,但是访问一个元素只能遍历它,而且额外的内存开销很大 forward_list设计的目的是与最好的手写的单向链表数据结构相当的性能 deque支持下标访问,且在两端添

第20章 priority_queue优先队列容器

/* 第20章 priority_queue优先队列容器 20.1 priority_queue技术原理 20.2 priority_queue应用基础 20.3 本章小结 */ // 第20章 priority_queue优先队列容器 // 20.1 priority_queue技术原理 // 20.2 priority_queue应用基础 -----------------------------------------------------------------------------

第19章 queue队列容器

/* 第19章 queue队列容器 19.1 queue技术原理 19.2 queue应用基础 19.3 本章小结 */ // 第19章 queue队列容器 // 19.1 queue技术原理 // 19.2 queue应用基础 ------------------------------------------------------------------------------------------- //273 #include <queue> #include <iostre

2017.2.21 activiti实战--第七章--Activiti与容器集成

学习资料:<Activiti实战> 第七章 Activiti与容器集成 本章讲解activiti-spring可以做的事情,如何与现有系统集成,包含bean的注入.统一事务管理等. 7.1 流程引擎工厂 7.1.1 ProcessEngine 创建processEngine的方法有三种: 1 通过配置文件 2 测试中通过ActivitiRule 3 通过ProcessEngines类 7.1.2 ProcessEngineFactory 与spring集成的目的有两个: 1 通过spring统