Docker与容器交互——attach和exec

devtools/2025/2/13 11:24:00/

阅读《Docker 从入门到实践》时,读到“进入容器”这一章节,有两个主要 的命令,分别是:

docker attach

docker exec

其中提到一句话:

注意: 如果从这个 stdin 中 exit,会导致容器的停止。        

一、为什么stdin 中 exit会导致容器的停止呢?

docker attach 和docker exec 都是和容器交互的命令,但是交互的本质是不一样的。

docker attach

如果用docker attach 和容器进行交互,那么,意味着会将标准的输入、输出以及错误流都附加到正在运行的容器的主进程上。它的好处是,通过这个命令可以与容器的主进程进行直接的交互,就像我们正在容器的内部运行命令一样。

如果我们要退出与这个容器的交互,按Ctrl+C 会向容器的主进程发送 SIGINT 信号,此时可能会导致容器的停止。

建议的操作是按下 Ctrl+P,然后按下 Ctrl+Q,即可安全退出。

docker exec

使用docker exec命令,那么会在当前运行的容器中,创建一个新的进程。它不会影响主进程。

如果要退出容器,使用docker exit 命令即可。

二、既然docker attach会导致容器停止,那么直接使用docker exec来替代docker attach 岂不更好?

docker attach 和docker exec有各自的应用场景。使用docker attach 进行快速的查看输出或者进行简单的调试,还是十分方便的。它适用于短时间以及简单的的容器交互操作。

相反,如果是长时间的交互或者比较复杂的操作,那么最好的还是使用docker exec,重新创建一个容器进程。

PS:

写到这里,让我想起来,十年前写PHP代码的时候,技术leader给了我们线上主代码库的全权限。有一次加班,我一不小心把代码库上的代码删了。当时我的内心是无比惶恐的。

没想到,技术leader得知后,只是略微的愣了一会,就跟我说:没事,你先回家吧,我来处理。

最后,代码库恢复了。这件事也以我给全组人道歉买零食结束。

到现在,我都一直感激这位leader对我的善意。


http://www.ppmy.cn/devtools/158465.html

相关文章

Java面试--Spring AOP

面试题:Spring AOP介绍一下:(大疆、百度面试题) Spring基础部分博客如下: Spring基础系列(一) Spring基础系列(二) Spring基础系列(三) 什么是Spring AOP: Sp…

单例模式详解(Java)

单例模式详解(Java) 一、引言 1.1 概述单例模式的基本概念和重要性 单例模式是一种常用的软件设计模式,它确保一个类在整个应用程序中只有一个实例,并提供一个全局访问点来访问这个唯一实例。这种模式在资源管理、配置设置和日志记录等方面非常有用,因为它们通常只需要…

用Python批量去除PDF文件的密码

注意:前提是你知道密码,本代码不是暴力跑字典 最近有个需求,下载了一堆PDF,但都有加密,密码还不一样,每次打开都要输密码很麻烦,所有有了此工具,批量去除所有密码。 import os fro…

服务器使用centos7.9操作系统前需要做的准备工作

文章目录 前言1.操作记录 总结 前言 记录一下centos7.9操作系统的服务器在部署业务服务之前需要做的准备工作。 大家可以复制到自己的编辑器里面,有需求的注释一些步骤。 备注:有条件的项目推荐使用有长期支持的操作系统版本。 1.操作记录 # 更换阿里云…

JavaScript语言的安全开发

JavaScript语言的安全开发 1. 引言 随着互联网的快速发展,JavaScript已经成为Web开发中不可或缺的一部分。无论是前端的用户界面交互,还是后端的服务器处理,JavaScript都发挥着重要的作用。然而,随着使用JavaScript的广泛性&…

性格测评小程序04题库管理

目录 1 创建数据源1.1 题库表1.2 选项表 2 搭建管理后台2.1 搭建题库功能2.2 搭建选项功能2.3 题库和选项联动 3 最终效果总结 我们现在性格测评的算法是通过40个题目来测评用户属于哪一个分类,为此后台需要有可以设置题目和选项的功能,本篇我们介绍一下…

CountDown中复现DeepSeek R1-Zero的效果

来自UC伯克利博士生潘家怡和另两位研究人员,在CountDown中复现了DeepSeek R1-Zero。 实验中,团队验证了通过强化学习,3B的基础语言模型也能够实现自我验证和搜索功能。整个验证的成本不到30美金(约217元)。 https://…

【Linux】Ubuntu Linux 系统 ——PHP开发环境

ℹ️大家好,我是练小杰,元宵节到了,在此祝大家元宵节快乐😆 新的一年里,愿你步步高升,事事如意,心想事成!! 本文是关于Linux 操作系统中部署PHP开发环境这部分基础内容,后…