Docker核心技术之容器详解(二)

简介: Docker核心技术之容器详解(二)

docker stop和docker kill的区别



前提知识点:


Linux其中两种终止进程的信号是:SIGTERM和SIGKILL


SIGKILL信号:无条件终止进程信号。进程接收到该信号会立即终止,不进行清理和暂存工作。该信号不能被忽略、处理和阻塞,它向系统管理员提供了可以杀死任何进程的方法。


SIGTERM信号:程序终结信号,可以由kill命令产生。与SIGKILL不同的是,SIGTERM信号可以被阻塞和终止,以便程序在退出前可以保存工作或清理临时文件等。


docker stop 会先发出SIGTERM信号给进程,告诉进程即将会被关闭。在-t指定的等待时间过了之后,将会立即发出SIGKILL信号,直接关闭容器。


docker kill 直接发出SIGKILL信号关闭容器。但也可以通过-s参数修改发出的信号。


因此会发现在docker stop的等过过程中,如果终止docker stop的执行,容器最终没有被关闭。而docker kill几乎是立刻发生,无法撤销。


此外还有些异常原因也会导致容器被关闭,比如docker daemon重启、容器内部进程运行发生错误等等“异常原因”。


容器重启 – docker restart



作用:     重启一个或多个处于运行状态、暂停状态、关闭状态或者新建状态的容器     该命令相当于stop和start命令的结合


命令格式:  


docker restart [OPTIONS] CONTAINER [CONTAINER...]


命令参数(OPTIONS):


-t, --time int           重启前,等待的时间,单位秒(默认 10s)                 实则是关闭前等待的时间

容器删除 – docker container rm



作用:     删除一个或多个容器


命令格式:    


docker container rm [OPTIONS] CONTAINER [CONTAINER...]       或者 docker rm [OPTIONS] CONTAINER [CONTAINER...]


命令参数(OPTIONS):      


-f, --force             强行删除容器(会使用 SIGKILL信号)     
                                           -v, --volumes           同时删除绑定在容器上的数据卷    


命令演示:

20190423001745229.png


五、容器信息查看



容器详细信息 – docker container inspect


作用:     查看本地一个或多个容器的详细信息


命令格式:


docker container inspect [OPTIONS] CONTAINER [CONTAINER...]       或者 docker inspect [OPTIONS] CONTAINER [CONTAINER...]


命令参数(OPTIONS):      


-f, --format string    利用特定Go语言的format格式输出结果     
                                              -s, --size        显示总大小


命令演示:


20190423002048413.png


容器日志信息 – docker logs


作用:     查看容器的日志信息


命令格式:


docker logs [OPTIONS] CONTAINER


命令参数(OPTIONS):            


--details        显示日志的额外信息     
                                                  -f, --follow                 动态跟踪显示日志信息         
                                                  --since string      只显示某事时间节点之后的              
                                                  --tail string            显示倒数的行数(默认全部)     
                                                  -t, --timestamps         显示timestamps时间         
                                                  --until string       只显示某事时间节点之前的


注意:     容器日志中记录的是容器主进程的输出STDOUT\STDERR


容器重命名 – docker rename


作用:     修改容器的名称


命令格式:  


docker rename CONTAINER NEW_NAME


命令参数(OPTIONS):         无


六、容器运行时操作



容器连接 – docker attach


作用:     将当前终端的STDIN、STDOUT、STDERR绑定到正在运行的容器的主进程上实现连接


命令格式:  


docker attach [OPTIONS] CONTAINER


命令参数(OPTIONS):      


--no-stdin                 不绑定STDIN


容器中执行新命令 – docker exec


作用:     在容器中运行一个命令


命令格式:  


docker exec [OPTIONS] CONTAINER COMMAND [ARG...]


命令参数(OPTIONS):        


-d, --detach                   后台运行命令     
                                              -i, --interactive        即使没连接容器,也将当前的STDIN绑定上     
                                              -t, --tty                      分配一个虚拟终端     
                                              -w, --workdir string           指定在容器中的工作目录     
                                              -e, --env list                 设置容器中运行时的环境变量


七、容器总结



20190423002618448.png


容器的详解到这结束,后面还有更深入的文章讲解!


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
9月前
|
监控 Kubernetes 安全
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
蒋星熠Jaxonic,技术探索者,以代码为笔,在二进制星河中书写极客诗篇。专注Docker与容器化实践,分享从入门到企业级应用的深度经验,助力开发者乘风破浪,驶向云原生新世界。
829 52
还没搞懂Docker? Docker容器技术实战指南 ! 从入门到企业级应用 !
|
9月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
919 6
|
9月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
847 6
|
9月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
741 2
|
9月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
1210 4
|
11月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1380 108
|
存储 监控 测试技术
如何将现有的应用程序迁移到Docker容器中?
如何将现有的应用程序迁移到Docker容器中?
822 57