测试开发CICD——Docker——docker attach ——连接到正在运行中的容器

docker attach :连接到正在运行中的容器。

语法

docker attach [OPTIONS] CONTAINER

要attach上去的容器必须正在运行,可以同时连接上同一个container来共享屏幕(与screen命令的attach类似)。

官方文档中说attach后可以通过CTRL-C来detach,但实际上经过我的测试,如果container当前在运行bash,CTRL-C自然是当前行的输入,没有退出;如果container当前正在前台运行进程,如输出nginx的access.log日志,CTRL-C不仅会导致退出容器,而且还stop了。这不是我们想要的,detach的意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上--sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。

实例

容器mynginx将访问日志指到标准输出,连接到容器查看访问信息。

runoob@runoob:~$ 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" "-"

作用

进入容器正在执行的终端

语法格式

docker attach [OPTIONS] CONTAINER

options 说明

option 说明
--detach-keys 覆盖用于分离容器的键序列
--no-stdin 不要附加标准输入
--sig-proxy 所有接收到的信号代理到进程

实际栗子

docker run -d --name topdemo ubuntu /usr/bin/top -b
docker attach topdemo

能看到 topdemo 容器内部正在执行的命令,1s 输出一次

和 docker exec 的区别

#进入当前容器后开启一个新的终端,可以在里面操作。(常用)
docker exec 

# 进入容器正在执行某个命令的终端,不能在里面操作
docker attach 
原文地址:https://www.cnblogs.com/xiaobaibailongma/p/15143229.html