3 回答
TA贡献1993条经验 获得超5个赞
Docker 容器后台运行和前台运行的区别
Posted by simapple on Tuesday, 19 August 2014
后台运行vs前台运行
当你启动一个docker 容器的时候,第一件事就是要确认你要在前台运行还是在后台运行:
-d=false:Detached mode:Run container in the background,printnew container id
后台运行 (-d)
后台运行直接指定 (-d=true or just -d),这样的话所有的操作类似网络连接,共享操作等等都不会再接受命令行的命令控制。你就要使用attach命令 来进入一个容器,再管理它,注意当你attach链接到一个容器的时候,你就不能再使用 rm 来删除这个容器。
前台运行
当你不指定-d时,就是在前台运行, docker run 可以启动一个进程,并且通过console 连接进程的标准输入 输出和标准错误。它甚至可以伪装成一个TTY,发送信号量。所有这一切都是可以配置的。
-a=[]:Attach to `STDIN`,`STDOUT`and/or`STDERR`-t=false:Allocate a pseudo-tty
--sig-proxy=true:Proxify all received signal to the process (even in non-tty mode)-i=false:Keep STDIN open even ifnot attached
如果你不想使用 -a 来连接容器的所有输入输出,那么你可以指定你希望接受的流STDIN, STDOUT, STDERR):
$ docker run -a stdin -a stdout -i -t ubuntu /bin/bash
在交互式的情况下,你最希望得到一个类似TTY那样的shell,你可以 指定 -i -t
taxonomyextra:
docker
TA贡献1836条经验 获得超3个赞
Docker 容器后台运行和前台运行的区别
Posted by simapple on Tuesday, 19 August 2014
后台运行vs前台运行
当你启动一个docker 容器的时候,第一件事就是要确认你要在前台运行还是在后台运行:
-d=false:Detached mode:Run container in the background,printnew container id
后台运行 (-d)
后台运行直接指定 (-d=true or just -d),这样的话所有的操作类似网络连接,共享操作等等都不会再接受命令行的命令控制。你就要使用attach命令 来进入一个容器,再管理它,注意当你attach链接到一个容器的时候,你就不能再使用 rm 来删除这个容器。
前台运行
当你不指定-d时,就是在前台运行, docker run 可以启动一个进程,并且通过console 连接进程的标准输入 输出和标准错误。它甚至可以伪装成一个TTY,发送信号量。所有这一切都是可以配置的。
-a=[]:Attach to `STDIN`,`STDOUT`and/or`STDERR`-t=false:Allocate a pseudo-tty
--sig-proxy=true:Proxify all received signal to the process (even in non-tty mode)-i=false:Keep STDIN open even ifnot attached
如果你不想使用 -a 来连接容器的所有输入输出,那么你可以指定你希望接受的流STDIN, STDOUT, STDERR):
$ docker run -a stdin -a stdout -i -t ubuntu /bin/bash
在交互式的情况下,你最希望得到一个类似TTY那样的shell,你可以 指定 -i -t
taxonomyextra:
docker
- 3 回答
- 0 关注
- 2086 浏览
添加回答
举报