zoukankan      html  css  js  c++  java
  • 第5章 docker run、exec和attach使用和区别

    docker run、exec和attach使用和区别

    结论

    • docker run;创建和启动一个新的容器实例,操作对象是镜像,选项较多,如果你要创建和启动一个容器,只能用run;
    • docker exec: 在已运行的容器中,执行命令,操作对象是容器,如果你要进入已运行的容器,并且执行命令,用exec;
    • docker attach: 同样操作的是已运行的容器,可以将本机标准输入(键盘输入)输到容器中,也可以将容器的输出显示在本机的屏幕上,如果你想查看容器运行过程中产生的标准输入输出,用attach;

    docker run

    官方命令解释:Run a command in a new container,翻译过来是在一个新的容器中中运行命令,所以主要作用有两点:一是创建和启动一个新的容器,二是启动时通过加选项和参数在容器运行命令;

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
        IMAGE: 镜像名称,run操作的是镜像images
        COMMAND:命令,可选
    
    # docker run -p 80:80 -d  --name=nginx-1 nginx    // 在后台创建和启动容器nginx-1,不执行命令
    
    # docker run -p 81:80 -d  --name=nginx-2 nginx bash -c 'ls & tail -f /dev/null'  // 在后台创建和启动容器nginx-2,同时执行组合命令
    # docker logs nginx-2  // 查看命令输出,可以看到ls执行的结果
    

    以上可以看出,docker run成功执行一次,必然产生一个新的容器实例。

    docker exec

    docker exec [options] CONTAINER COMMAND [ARG...]
        CONTAINER:容器名称或ID,必选,看出exec操作的对象是容器
        COMMAND:命令,必选

    官方命令解释:Run a command in a running container,翻译过来就是在一个正在运行的容器中执行命令,exec是针对已运行的容器实例进行操作,在已运行的容器中执行命令,不创建和启动新的容器。

    # docker run -p 82:80 -d  --name=nginx-3 nginx 
    # docker exec -it nginx-3 /bin/bash  // 直接进入容器nginx-3,执行bash
    # docker exec nginx-3 bash -c "ls"   // 在容器中执行命令 ls,输出结果
    

    docker attach

    docker attach [OPTIONS] CONTAINER
        CONTAINER:容器名称或ID,必选,attach的操作对象也是容器
    

    官方命令解释:Attach local standard input, output, and error streams to a running container,翻译过来,将本机的标准输入(键盘)、标准输出(屏幕)、错误输出(屏幕)附加到一个运行的容器,也就是说本机的输入直接输到容器中,容器的输出会直接显示在本机的屏幕上。

        # docker run -p 83:80 -d  --name=nginx-4 nginx 
        # docker attach nginx-4
        
        // 本机上再打开一个终端,输入以下命令,观察上面终端的输出
        # curl localhost:83   // nginx输出正常访问记录
        # curl localhost:84/index  // nginx输出访问错误记录
  • 相关阅读:
    收集起来先
    asp .net 页面回车触发button 按钮事件
    关于SQL 数据库表中的聚集索引和非聚集索引等
    WinForm换肤操作(用IrisSkin2.dll)
    生成Word文档的相关操作
    API自动化测试测试数据集
    API文档实践
    使用eolinker对API测试的响应结果进行断言
    API自动化定时测试
    接口测试之对数据进行RSA加解密
  • 原文地址:https://www.cnblogs.com/hanjiali/p/14088844.html
Copyright © 2011-2022 走看看