zoukankan      html  css  js  c++  java
  • docker 的前台模式和后台模式

    Detached(后台模式) vs foreground(前台模式)

    当我们启动一个容器时,首先需要确定这个容器是运行在前台还是运行在后台。

    -d, --detach                      Run container in background and print container ID
    

    Detached (-d)

    如果在docker run后面追加-d=true或者-d,那么容器将会运行在后台模式。此时所有I/O数据只能通过网络资源或者共享卷组来进行交互。因为容器不再监听你执行docker run的这个终端命令行窗口。但你可以通过执行docker attach来重新附着到该容器的会话中。需要注意的是,容器运行在后台模式下,是不能使用--rm选项的。

    Foregroud

    在前台模式下(不指定-d参数即可),Docker会在容器中启动进程,同时将当前的命令行窗口附着到容器的标准输入、标准输出和标准错误中。也就是说容器中所有的输出都可以在当前窗口中看到。甚至它都可以虚拟出一个TTY窗口,来执行信号中断。这一切都是可以配置的:

    -a, --attach value                Attach to STDIN, STDOUT or STDERR (default [])
    -t, --tty                         Allocate a pseudo-TTY
    --sig-proxy                   Proxy received signals to the process (default true)
    -i, --interactive                 Keep STDIN open even if not attached
    

    如果在执行run命令时没有指定-a参数,那么Docker默认会挂载所有标准数据流,包括输入输出和错误,你可以单独指定挂载哪个标准流。

    $ sudo docker run -a stdin -a stdout -i -t ubuntu /bin/bash
    

    如果要进行交互式操作(例如Shell脚本),那我们必须使用-i -t参数同容器进行数据交互。但是当通过管道同容器进行交互时,就不需要使用-t参数,例如下面的命令:

    echo test | docker run -i busybox cat
    
  • 相关阅读:
    [苹果maccms] MACCMS苹果cms宝塔定时任务添加教程说明
    [苹果cmsV10]新版本演员库分类报无权限问题和解决方法!
    CentOS 6.8安装Python2.7.13
    [HOWTO] Install Sphinx for A Script Pro
    A Script Pro nginx URL重写规则无法播放MP4解决方法
    随机跳转
    UI库
    vuex
    vue 数据请求
    vue守卫、储存与路由模式
  • 原文地址:https://www.cnblogs.com/cag2050/p/10144874.html
Copyright © 2011-2022 走看看