• 第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输出访问错误记录
  • 相关阅读:
    使用开源GIS克隆一个Google Map
    《3s新闻周刊》No.4:与国产GIS企业一起成长
    Google发布免费的SketchUp
    VB和VBA工程的一些限制
    推荐一个新的RSS阅读站点:抓虾
    USGS如何利用Google Earth
    ESRI今年的Dev Summit的幻灯片
    Google Map创建工具和资源
    《3s新闻周刊》第6期发布,本期话题:海外聚焦――空间信息技术进行式
    《Excel与VBA程序设计》最新进度(>75%)
  • 原文地址:https://www.cnblogs.com/hanjiali/p/14088844.html
Copyright © 2020-2023  润新知