yu我们之前已经学习了如何运行容器docker run,也学习了如何进入容器docker attach和docker exec,下面我们来学习容器的其他操作:

stop/start/restart

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

容器在docker host上面实际是一个进程,docker stop命令其实是向这个进程发送了一个SIGTERM信号。如果想快速停止容器,可以使用docker kill命令,作用是向容器进程发送SIGKILL信号(通过自己做试验,docker stop停止容器是比较慢,docker kill是比较快)

2.对于停止的容器,我们可以通过docker start重新启动

并不是所有停止的容器都可以使用docker start启动起来的,通过试验发现docker start无法将那些没有运行过的容器启动起来,比如:

无法将通过docker run -d centos创建的容器启动起来,因为由docker run -d centos创建出来的容器由于没有前台进程,所以无法运行。

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

3.docker restart重启容器

容器重启的过程是:先docker stop,然后docker start

容器可能会因为某种错误而停止运行。对于服务类的容器,我们希望容器能够在遇到错误时可以自动重启;可以通过--restart达到这个效果,如:

--restart=always:无论容器因何种原因退出(包括正常退出),就立即重启(--restart=always针对的是容器的启动进程,只有当容器的启动进程退出时,--restart才生效)

退出包括正常退出或者非正常退出。例如:启动进程正常退出或发生OOM(out of memory),此时docker 会根据--restart的策略来判断是否需要重启容器。如果容器执行的是docker stop 和docker kill而退出,则不会自动重启

--restart=on-failure:3    :容器的退出代码为非0值,则重启容器,最多重启3次

4.pause暂停容器

有时可能需要暂停一会容器,比如给容器的文件系统做快照,或者Host 主机需要CPU资源,这时我们可以使用docker pause 暂停容器

其实这个pause停止的是容器里面的进程,处于暂停状态的容器不会占用CPU资源,直到通过docker unpause 恢复运行

5.rm删除容器

前面做了大量的实验之后,有很多Exited状态的和UP状态的容器,那对于这些容器,大部分是我们不用的,但是这些容器依然会占用大量的Host的资源,对于这些不用的容器,可以使用docker rm进行删除

可以看到我的Host上有大量的Exited状态的容器,一个一个的删除太麻烦了,那我们可以使用docker rm $(docker ps -a -q)批量删除Exited容器

-p:列出所有容器的ID

docker rm -v $(docker ps -aq  -f status=exited)这个命令是彻底删除Host上面的状态为EXITED状态的容器

-v :容器启动后,数据会以volume的形式存在于硬盘中,即使删除了容器,数据也不会被删除;加上-v的参数,容器执行的数也会被删除

-f:强制删除,可以删除正在运行的容器

两个高危参数,谨慎使用!!!

6.create预创建容器

在一些情况下我们可以先预创建容器,稍后再启动他

通过docker create创建的容器,处于create状态,可以通过docker start启动他

docker run命令实际是由docker create和dcoker start的组合

centos7下安装docker(8.3容器的常用操作)的更多相关文章

  1. centos7下安装docker(19容器架构)

    What,Why,How What:什么是容器? 说起容器大家想到的是什么?      集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...

  2. centos7下安装docker(11容器操作总结)

    这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...

  3. centos7下安装docker(10容器底层--cgroup和namespace)

    cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...

  4. centos7下安装docker(9容器对资源的使用限制-内存)

                  一个docker Host上面会运行若干容器,每个容器都需要CPU,内存和IO资源.容器提供了控制分配多少CPU,内存给每个容器的机制,避免摸个容器因占用太多资源而影响其他 ...

  5. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  6. CentOS7下安装docker(Docker系列1)

    CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...

  7. centos7下安装docker与镜像加速

    1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...

  8. centos7 下安装docker报错:You could try using...

    搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...

  9. centos7下安装docker(13.4容器volume总结)

    最近我们学习了docker 存储,首先docker存储有两种:storage driver和data volume. storage driver是由镜像层和容器层组成的,可以通过docker ins ...

  10. centos7下安装docker(13.2容器数据共享)

    回想一下我们学了两种存储方式:storage driver和data volume,其中又分为bind mount和docker managed volume,我们知道storage driver就是 ...

随机推荐

  1. JavaWeb学习 (十四)————JSP基础语法

    一.JSP模版元素 JSP页面中的HTML内容称之为JSP模版元素.  JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观. 二.JSP表达式 JSP脚本表达式(expression)用于将 ...

  2. JavaWeb学习 (八)————HttpServletResponse对象(二)

    一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,

  3. [转]在Node.js中使用RabbitMQ系列一 Hello world

    本文转自:https://www.cnblogs.com/cpselvis/p/6288330.html 在前一篇文章中可伸缩架构简短系列中提到过关于异步的问题.当时推荐使用RabbitMQ来做任务队 ...

  4. 所生成项目的处理器架构“MSIL”与引用“Microsoft.AspNet.Scaffolding.12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=x86”的处理器架构“x86”不匹配。

    生成成功后: 3>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): ...

  5. JS 上传图片 + 预览功能(一)

    JS 上传图片 + 预览功能 <body> <input type="file" id="fileimg1" style="disp ...

  6. try、catch、finally详解,你不知道的异常处理

    介绍 不管是新手还是工作几年的老油条,对try{}catch{}来说是不陌生的.他可以来帮助我们获取异常信息,在try中的代码出现错误,火灾catch代码块中被捕获到.官方也给了详细的解释:. 抛出异 ...

  7. [android] 手机卫士手机定位的原理

    手机定位的三种方式:网络定位,基站定位,GPS定位 网络定位,手机连上wifi 2g 3g的时候,手机会有一个ip,误差很大 基站定位,精确度与基站的多少有关,几十米到几公里的误差 GPS定位,至少需 ...

  8. 转载 一位资深程序员大牛给予Java初学者的学习路线建议

    原文链接:http://geek.csdn.net/news/detail/242336 Java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Jav ...

  9. Mybatis 与hibernate

    共同点 (1)Hibernate与MyBatis都是通过SessionFactoryBuider由XML配置文件生成SessionFactory,由SessionFactory 生成Session,由 ...

  10. Minitab系列 前言

    Matlab 在有些时候太过去强大,强大到几乎所有的数学问题都可以解决. 在这里,Matlab就像数学版的Vim,对于一般的使用者还是不想编程,想要更加的直接直观的数学处理工具,这里向大家介绍mini ...