docker attach 和 exec 的区别

Posted 看,未来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker attach 和 exec 的区别相关的知识,希望对你有一定的参考价值。

一个好习惯是使用 run 启动容器,用 exec 运行容器,用 Ctrl+P+Q 退出容器。

attach 和 exec 都可以进入容器,不过如果是使用 attach 进入容器后关闭容器,则会被认为是销毁了容器,而 exec 则不然。

这里有一点要注意,就是如果 attach 进入一个容器,然后将容器关闭掉了,那么 exec 出来的容器也都没了。
注意:Ctrl + P + Q 是挂起,exit 是关闭。


提问:attach 对容器的修改会持久化吗?exec 呢?如果会,需要满足什么条件?如果不会,为什么?

答:会的,而且多个 exec/attach 进入同一个容器的话,修改是会被同步的。


再提问:
在一个运行中的容器内的declare 一个变量,在另一个容器内可以看到吗?

答:看不到的。


这样理解:
镜像就是一个小系统,在上面打开的所有镜像都是进程。所以,该隔离的隔离,不该隔离的都不隔离。

以上是关于docker attach 和 exec 的区别的主要内容,如果未能解决你的问题,请参考以下文章

docker进入当前正在运行容器的两种方式(exec和attach的区别)

docker进入当前正在运行容器的两种方式(exec和attach的区别)

docker进入当前正在运行容器的两种方式(exec和attach的区别)

docker CLI官方教程 run方法解析(docer run docker attach 与 docker exec的区别)

创建一个支持 sshd 服务的 docker 镜像

docker run VS docker exec 的区别