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. 打印小票,使用的是BarcodeLib

    打印 private void Control_Click(object s,EventArgs e) { if (((Control)s).Name == "button1") ...

  2. T-SQL:开窗函数(十二)

    1.基本概念 开窗函数分为两个部分分别是 1.聚合,排名,偏移,分布函数 . 2.开窗分区,排序,框架. 下面举个例子 SELECT empid, ordermonth, val, SUM(val) ...

  3. CSS学习笔记07 盒子模型

    1.盒子模型 所谓盒子模型就是把HTML页面中的元素看作是一个矩形的盒子,也就是一个盛装内容的容器.每个矩形都由元素的内容.内边距(padding).边框(border)和外边距(margin)组成. ...

  4. nginx跳转访问

    server { listen 8888; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; ...

  5. 使用 json-server 模拟数据

    1. 先安装 npm install json-server -g 2.查看是否安装成功 json-server -h 3.准备数据,新建一个文件夹 mock,cd mock,在mock下 新建tes ...

  6. Python args kwargs 技巧

    def f(*args): print(args) a=[1, 2, 3] f(a) f(*a) 运行结果: ([1, 2, 3],) (1, 2, 3) def f(**kwargs): print ...

  7. demo:动态生成专属二维码

    在日常生活中,随处可见二维码,那么js如何生成动态的专属二维码?其实,通过"二维码插件"我们可以快速生成二维码.在这,记录一下的生成专属二维码demo,一起来看看jquery.qr ...

  8. git命令详解( 三 )

    此篇为git命令的第三篇 目录 git Pull 模拟团队合作 Git Pull 在上一篇的结尾我们已经知道了如何用 git fetch 获取远程的数据, 现在我们学习如何将这些变化更新到我们的工作当 ...

  9. python 类函数,实例函数,静态函数

    一.实现方法 class Function(object): # 在类定义中定义变量 cls_variable = "class varibale" def __init__(se ...

  10. springcloud 入门 7 (zuul路由网关)

    Zuul简介: Zuul的主要功能是路由转发和过滤器.路由功能是微服务的一部分,比如/api/user转发到到user服务,/api/shop转发到到shop服务.zuul默认和Ribbon结合实现了 ...