docker exec与docker attach的区别

最近工作上经常用到docker命令的应用,在交接工作时别人告诉我如果进入到docker container时需要用docker attach命令,我平时一般用到docker exec来进入docker, 这两个命令都是可以实现进入docker container的目的,但是两者有什么区别呢?

docker attach

docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。
PS:

  1. docker attach 命令输入后会卡顿,需要手动敲入Enter后才能到达container里面。
  2. 在我的容器内输入Ctrl+C是不起作用的。
  3. 输入exit或者Ctrl+D后容器直接退出会导致container的停止。
auto@auto-vm:~$ docker attach a18830d5b885
root@a18830d5b885:/#
root@a18830d5b885:/# ls
000test     
root@a18830d5b885:/# ^C
root@a18830d5b885:/# exit
exit
auto@auto-vm:~$

docker exec

用docker exec -it命令进入容器如果输入exit命令直接退出container,但是不会使得container停止,平时我用这个命令比较多。

auto@auto-vm:~$ docker exec -it 75916c3c83c3 bash
root@75916c3c83c3:/# ls
000test     
root@75916c3c83c3:/# exit
exit
auto@auto-vm:~$
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容