docker attach和exec的区别
时间: 2023-03-25 07:05:07 浏览: 152
`docker attach` 命令允许你连接到一个正在运行的容器中,以便交互式地使用它。这对于在容器中运行的程序进行调试或交互式操作非常有用。
`docker exec` 命令允许你在已经运行的容器中执行命令,而不需要进入交互式模式。这对于在容器中执行特定命令或脚本非常有用。
总结: attach 是交互式连接到容器中, exec 是在容器中执行命令。
相关问题
dockerattach 与 exec 的区别
`docker attach` 和 `docker exec` 都可以用于与正在运行的 Docker 容器进行交互。
`docker attach` 命令将当前的终端附加到正在运行的容器的标准输入、输出、错误输出流上,这意味着您可以直接与容器交互,就好像您在容器内部一样。但是需要注意的是,如果您使用 `docker attach` 命令附加到容器上时,如果您按下 `Ctrl+C`,则会中断容器进程。
`docker exec` 命令则不同,它会在正在运行的容器中启动一个新进程,并将其连接到标准输入、输出和错误输出流。这个新进程是在容器内部运行的,与容器的主进程是独立的,所以在使用 `docker exec` 命令时,按下 `Ctrl+C` 不会中断容器进程。
因此,`docker attach` 适合于需要直接与容器交互的情况,比如查看容器中的日志或运行交互式命令行工具。而 `docker exec` 更适合在容器内部启动新进程的情况,比如在容器中运行一些命令或脚本。
docker exec 和docker attach
`docker exec` 和 `docker attach` 都是 Docker 管理容器时常用的命令,但它们的功能有所不同。
`docker exec` 命令允许你在运行的容器内执行命令或启动新进程。它不会打开一个新的TTY连接到容器,而是将命令的结果直接输出到终端。例如,如果你想查看容器内部某个进程的日志或者运行一个新的命令:
```shell
docker exec -it container_name command_to_run
```
这里 `-i` 表示保持输入(interactive),`-t` 表示分配一个伪tty(tty allocation)。如果想看日志,可以省略 `-i` 参数:
```shell
docker exec container_name tail -f /var/log/app.log
```
而 `docker attach` 则会建立一个TTY连接,让你直接与容器内的 shell 进行交互,就像在本地终端下操作一样。这意味着你可以实时看到容器内的输出,并进行命令输入:
```shell
docker attach container_name
```
如果你想要离开当前的连接,只需按 `Ctrl+P`, `Ctrl+Q` 就可以退出。
阅读全文
相关推荐
















