本快速教程介绍了如何使用docker-compose启动,停止,删除,重新启动以及查看docker容器应用程序的状态。如果您是Docker的新手,并且已经接管了已经运行了Docker应用程序的系统,则至少应了解如何进行维护。在管理复杂的多容器Docker应用程序时,docker-compose非常有用。
1.在后台启动Docker容器
应用程序的所有服务通常在docker-compose.yml文件下定义。在此yml文件中,您还将定义所有应用程序服务依赖项。
通常,当您执行docker-compose up时,它将下载并拉入适当的映像(如果未在服务器上本地缓存),然后将使用您的应用程序代码来构建映像,并最终以全部启动整个docker应用程序依赖关系。
有时,您可能还会有一个单独的Dockerfile,您将在其中指定如何构建特定映像。
首先,转到docker-compose.yml文件所在的目录,然后执行以下docker-compose up命令。
您会注意到,它只会在执行时第一次下载容器,此后,它将使用缓存的版本。您将不再在about输出中看到“ Pulling ..”行。
从下一次启动docker-compose时,您只会看到以下内容。
d选项作为后台程序在后台运行docker应用程序。这将使应用程序运行,直到您决定停止它为止。
在上面的示例输出中,它已启动以下服务:
数据库的mongo
用于Web服务器的Nginx
适用于应用服务器的tomcat
2.在前台启动Docker容器
如果不指定-d选项,则docker-compose将在前台启动所有服务。
当您调试Docker容器,映像或服务的任何与启动相关的问题时,这将很有帮助。在这种情况下,您可以直接在屏幕上查看所有日志消息。
在这种情况下,应用程序将启动并运行,直到您按Ctrl-C取消前台进程为止。
在这种情况下,按Ctrl-C等效于执行“ docker-compose stop”。因此,它将正常停止所有容器。
3.其他docker-compose启动选项
使用docker-compose up时,如果docker-compose.yml文件中有任何影响容器的更改,它们将停止并重新创建。
但是,您可以强制docker-compose不要停止并重新创建容器,您可以在docker-compose启动期间使用–no-recreate选项,如下所示。换句话说,如果容器已经存在,则不会重新创建它。
您也可以相反。即使docker-compose.yml中的内容未更改,以下内容也会强制重新创建容器。
您还可以指定超时值。默认值为10秒,但以下命令将使用30秒的超时值。
以下是一些可以与“ docker-compose up”一起使用的附加选项
–abort-on-container-exit如果停止任何容器,则将停止所有容器。您不能将此选项与-d一起使用,而必须单独使用此选项。
–no-deps这将不会启动任何链接的依赖服务。
–no-build即使图像丢失,也不会生成图像
–no-color在输出中,将不显示任何颜色。这将在屏幕上显示单色输出。
4.停止所有Docker容器
要停止在前台运行的Docker应用程序,只需按Ctrl-C即可,如上图所示。
但是,要停止在后台运行的Docker应用程序,请使用docker-compose stop,如下所示。
停止Docker应用程序容器有两个步骤:
首先,使用docker-compose stop停止正在运行的容器
其次,使用docker-compose rm -f删除停止的容器
使用docker-compose stop停止应用程序容器: