dockerattach 与 exec 的区别
时间: 2023-11-26 22:19:49 浏览: 30
`docker attach` 和 `docker exec` 都可以用于与正在运行的 Docker 容器进行交互。
`docker attach` 命令将当前的终端附加到正在运行的容器的标准输入、输出、错误输出流上,这意味着您可以直接与容器交互,就好像您在容器内部一样。但是需要注意的是,如果您使用 `docker attach` 命令附加到容器上时,如果您按下 `Ctrl+C`,则会中断容器进程。
`docker exec` 命令则不同,它会在正在运行的容器中启动一个新进程,并将其连接到标准输入、输出和错误输出流。这个新进程是在容器内部运行的,与容器的主进程是独立的,所以在使用 `docker exec` 命令时,按下 `Ctrl+C` 不会中断容器进程。
因此,`docker attach` 适合于需要直接与容器交互的情况,比如查看容器中的日志或运行交互式命令行工具。而 `docker exec` 更适合在容器内部启动新进程的情况,比如在容器中运行一些命令或脚本。
相关问题
docker attach和exec的区别
`docker attach` 命令允许你连接到一个正在运行的容器中,以便交互式地使用它。这对于在容器中运行的程序进行调试或交互式操作非常有用。
`docker exec` 命令允许你在已经运行的容器中执行命令,而不需要进入交互式模式。这对于在容器中执行特定命令或脚本非常有用。
总结: attach 是交互式连接到容器中, exec 是在容器中执行命令。
docker run和exec区别
回答: Docker run和exec是Docker命令中的两个不同操作。Docker run用于创建并启动一个新的容器实例,每次执行都会创建一个新的容器实例。而Docker exec用于在已经运行的容器中执行命令。\[1\]Docker exec命令需要指定容器的名称或ID以及要执行的命令。执行命令后,会返回命令的执行结果。\[2\]需要注意的是,Docker exec命令在Docker 1.3版本中可能存在Bug,无法正确返回命令的执行结果。\[3\]因此,Docker run和exec的主要区别在于,run用于创建新的容器实例,而exec用于在已经运行的容器中执行命令。
#### 引用[.reference_title]
- *1* *2* *3* [docker run、exec和attach使用和区别](https://blog.csdn.net/fuhanghang/article/details/128826555)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]