如何在后台(脱离模式下)运行Docker容器

【51CTO.com快译】在Docker下,映像开发人员可以定义与脱离前台运行的容器有关的映像默认值以及其他有用的设置。但是,使用docker run [OPTIONS]命令,你可以添加或覆盖开发人员设置的映像默认值,因而更全面地控制容器的运行方式。

我们在本文中将简要介绍运行容器的前台模式和后台模式,并介绍如何在脱离模式下在后台运行Docker容器。

前台模式(默认)与后台/脱离模式

启动Docker容器之前,你先要确定想在默认的前台模式下运行容器,还是在脱离模式下在后台运行容器。

在前台模式下,Docker可以在容器中启动进程,并将控制台连接到进程的标准输入、标准输出和标准错误。

还有命令行选项来进一步配置,比如-t可为进程分配pseudo-tty,-i可保持STDIN打开,即使它没有连接。你还可以使用-a=[value here]标志,将它连接到一个或多个文件描述符(STDIN、STDOUT及/或STDERR)。

重要的是,–rm选项告诉Docker在退出时自动删除容器。该例子表明如何在前台模式启动Docker容器:

# docker run --rm -ti -p 8000:80 -p 8443:443 --name pandorafms pandorafms/pandorafms:latest 

图1. 前台模式下运行Docker容器

前台模式下运行容器的缺点是,你无法再访问命令提示符,如上面的屏幕截图所示。这意味着容器运行时你无法运行任何其他命令。

想在后台运行Docker容器,请使用-d=true选项或就使用-d选项。首先,按[Ctrl+C]阻止容器在前台模式下运行,然后在脱离模式下运行,如下所示:

# docker run -d --rm -p 8000:80 -p 8443:443 --name pandorafms pandorafms/pandorafms:latest 

图2. 在脱离模式下运行Docker容器

想列出所有容器,请运行以下命令(默认仅显示运行中的容器)。

# docker ps -a 

图3. 列出所有运行中的Docker容器

此外,想重新连接到脱离的容器,请使用docker attach命令。

# docker attach --name pandorafms 

OR

# docker attach 301aef99c1f3 

如果你想停止上述容器或其他任何正在运行的容器,请使用以下命令(将301aef99c1f3换成实际的容器ID)。

# docker stop 301aef99c1f3 

原文标题:Run Docker Container in Background (Detached Mode),作者:Aaron Kili

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】