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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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


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


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2天前
|
Kubernetes Linux 开发者
深入探索容器化技术——Docker 的实战应用
深入探索容器化技术——Docker 的实战应用
21 5
|
5天前
|
运维 Cloud Native 云计算
云原生之旅:Docker容器化实战
本文将带你走进云原生的世界,深入理解Docker技术如何改变应用部署与运维。我们将通过实际案例,展示如何利用Docker简化开发流程,提升应用的可移植性和伸缩性。文章不仅介绍基础概念,还提供操作指南和最佳实践,帮助你快速上手Docker,开启云原生的第一步。
|
1天前
|
持续交付 开发者 Docker
探索容器化技术Docker及其在现代软件开发中的应用
探索容器化技术Docker及其在现代软件开发中的应用
|
3天前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
3天前
|
开发者 Docker Python
从零开始:使用Docker容器化你的Python Web应用
从零开始:使用Docker容器化你的Python Web应用
10 1
|
6天前
|
运维 Kubernetes Cloud Native
云原生技术入门:Kubernetes和Docker的协同工作
【10月更文挑战第43天】在云计算时代,云原生技术成为推动现代软件部署和运行的关键力量。本篇文章将带你了解云原生的基本概念,重点探讨Kubernetes和Docker如何协同工作以支持容器化应用的生命周期管理。通过实际代码示例,我们将展示如何在Kubernetes集群中部署和管理Docker容器,从而为初学者提供一条清晰的学习路径。
|
7天前
|
运维 持续交付 虚拟化
深入解析Docker容器化技术的核心原理
深入解析Docker容器化技术的核心原理
26 1
|
9天前
|
机器学习/深度学习 数据采集 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
9天前
|
JavaScript 开发者 Docker
Docker容器化实战:构建并部署一个简单的Web应用
Docker容器化实战:构建并部署一个简单的Web应用
|
9天前
|
持续交付 开发者 Docker
Docker容器化技术实战指南
Docker容器化技术实战指南
25 1
下一篇
无影云桌面