描述
docker attach :连接到正在运行中的容器。
用法
docker attach [OPTIONS] CONTAINER
要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似),也就是说当我们打开两个窗口用attach进入同一个容器的时候,两个窗口显示的内容是一致的。
当我们输入exit来退出容器时,容器会被关闭,当我们直接关系shell窗口,容器则不会被关闭,这也就导致操作上的一些麻烦,所以没有特殊的要求,建义还是使用 docker exec 来操作容器。
官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。这不是我们想要的,detach的意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上--sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。
选项
--detach-keys 覆写脱离容器的快捷键
--no-stdin 不打开输入功能
--sig-proxy 代理所有进程所接收的信号,默认true
实例
容器mynginx将访问日志指到标准输出,连接到容器查看访问信息。
cssjs@cssjs:~$ docker attach --sig-proxy=false mynginx 192.168.239.1 - - [10/Jul/2016:16:54:26 +0000] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36" "-"