• 第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输出访问错误记录
  • 相关阅读:
    申请Namecheap的.me 顶级域名以及申请ssl认证--github教育礼包之namecheap
    Floodlight+Mininet的SDN实验平台搭建初探
    在DigitalOcean vps中安装vnstat监控流量,浏览器打开php代码。。。
    知识积累
    vue路由跳转(新开页面 当前页面)
    手机访问电脑本地静态页面
    Vue:scoped与module的使用与利弊
    小技巧
    布局记录
    vue项目及vuex使用
  • 原文地址:https://www.cnblogs.com/hanjiali/p/14088844.html
Copyright © 2020-2023  润新知