centos7下安装docker(8.3容器的常用操作)
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容器的常用操作)的更多相关文章
- centos7下安装docker(19容器架构)
What,Why,How What:什么是容器? 说起容器大家想到的是什么? 集装箱(container),虚拟机,docker,k8s 1. 没毛病,因为容器与集装箱的英文都可以翻译成co ...
- centos7下安装docker(11容器操作总结)
这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs:还学习了对容器的资 ...
- centos7下安装docker(10容器底层--cgroup和namespace)
cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...
- centos7下安装docker(9容器对资源的使用限制-内存)
一个docker Host上面会运行若干容器,每个容器都需要CPU,内存和IO资源.容器提供了控制分配多少CPU,内存给每个容器的机制,避免摸个容器因占用太多资源而影响其他 ...
- docker(一) Centos7下安装docker
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...
- CentOS7下安装docker(Docker系列1)
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...
- centos7下安装docker与镜像加速
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...
- centos7 下安装docker报错:You could try using...
搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...
- centos7下安装docker(13.4容器volume总结)
最近我们学习了docker 存储,首先docker存储有两种:storage driver和data volume. storage driver是由镜像层和容器层组成的,可以通过docker ins ...
- centos7下安装docker(13.2容器数据共享)
回想一下我们学了两种存储方式:storage driver和data volume,其中又分为bind mount和docker managed volume,我们知道storage driver就是 ...
随机推荐
- Maven教程4(私服-nexus)
仓库管理器也叫私服或代理仓库 仓库管理器有两个服务目的:首先它的角色是一个高度可配置的介于你的组织与公开Maven仓库之间的代理,其次它为你的组织提供了一个可部署你组织内部生成的构件的地方. 1Nex ...
- PHP 网页数据api采集
一个简单的数据采集,这里用的方法是API数据采集 //api地址,读取文本 $result = file_get_contents("https://feed.mix.sina.com.cn ...
- laravel C层接收数据的步骤
use Illuminate\Http\Request; function fun(Request $request){ //获取修改的数据 $arr = $request->all(); // ...
- C 语言精髓之变参函数
我们以 printf 这个 very 熟悉的函数为例,来分析一下变参函数.先看下 printf 函数的定义: int printf(const char *fmt, ...) { int i; int ...
- C# 单例模式和窗体的单例打开方法
第一种最简单,但没有考虑线程安全,在多线程时可能会出问题,不过俺从没看过出错的现象,表鄙视我…… public class Singleton{ private static Singleton ...
- IronPython初体验
介绍 在 C# 程序中嵌入 IronPython 得到了很好的支持.在本教程中,我们将展示如何完成这个项目. 首先,我们将展示两个非常基本的例子,说明如何执行一个不导入任何模块的非常简单的脚本.然后, ...
- nginx 匹配规则小总结
nginx location 等号类型(=)的优先级最高,需要精确匹配.一旦匹配成功,则不再查找其他匹配项. ^~类型表达式.一旦匹配成功,则不再查找其他匹配项. 正则表达式类型(~ ~*)的优先级次 ...
- JS之用ES6 Promise解决回调地狱(这里以小程序为例)
首先 写一个请求的方法,如: /** * 银行窗口 * 你需要给我提供相关的相关参数我帮你提交到服务器上 * 我会给你一个等待区的编号给你 你去等待区等待,我处理完成会去等待区通知你 * @param ...
- Chrome中无法断点调试的解决方案
chrome的调试功能实在是太强大了,相比之下ie的就是一垃圾. 最近在调试时出现一种情况,死活不能设置断点,也不能跟踪调试,这下抓狂了. JS也是非常简单的,也没有压缩.为什么就不能调试呢? 网上狂 ...
- Java抽象类和接口的比较
一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体 ...