zoukankan      html  css  js  c++  java
  • 测试开发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 
  • 相关阅读:
    【搜索引擎】Solr最新安装以及通过关系型数据库(MySQL,Oracle,PostgreSQL)导入数据
    【搜索引擎】SOLR VS Elasticsearch(2019技术选型参考)
    【Java源码】集合类-优先队列PriorityQueue
    【Java源码】树-概述
    Go语言调度器之创建main goroutine(13)
    Go语言goroutine调度器初始化(12)
    Go语言goroutine调度器概述(11)
    线程本地存储及实现原理
    操作系统线程及线程调度
    系统调用
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/15143229.html
Copyright © 2011-2022 走看看