d選項(xiàng)作為后臺(tái)程序在后臺(tái)運(yùn)行docker應(yīng)用程序
本快速教程介紹了如何使用docker-compose啟動(dòng),停止,刪除,重新啟動(dòng)以及查看docker容器應(yīng)用程序的狀態(tài)。如果您是Docker的新手,并且已經(jīng)接管了已經(jīng)運(yùn)行了Docker應(yīng)用程序的系統(tǒng),則至少應(yīng)了解如何進(jìn)行維護(hù)。在管理復(fù)雜的多容器Docker應(yīng)用程序時(shí),docker-compose非常有用。
1.在后臺(tái)啟動(dòng)Docker容器
應(yīng)用程序的所有服務(wù)通常在docker-compose.yml文件下定義。在此yml文件中,您還將定義所有應(yīng)用程序服務(wù)依賴項(xiàng)。
通常,當(dāng)您執(zhí)行docker-compose up時(shí),它將下載并拉入適當(dāng)?shù)挠诚?如果未在服務(wù)器上本地緩存),然后將使用您的應(yīng)用程序代碼來構(gòu)建映像,并最終以全部啟動(dòng)整個(gè)docker應(yīng)用程序依賴關(guān)系。
有時(shí),您可能還會(huì)有一個(gè)單獨(dú)的Dockerfile,您將在其中指定如何構(gòu)建特定映像。
首先,轉(zhuǎn)到docker-compose.yml文件所在的目錄,然后執(zhí)行以下docker-compose up命令。
您會(huì)注意到,它只會(huì)在執(zhí)行時(shí)第一次下載容器,此后,它將使用緩存的版本。您將不再在about輸出中看到“ Pulling ..”行。
從下一次啟動(dòng)docker-compose時(shí),您只會(huì)看到以下內(nèi)容。
d選項(xiàng)作為后臺(tái)程序在后臺(tái)運(yùn)行docker應(yīng)用程序。這將使應(yīng)用程序運(yùn)行,直到您決定停止它為止。
在上面的示例輸出中,它已啟動(dòng)以下服務(wù):
數(shù)據(jù)庫的mongo
用于Web服務(wù)器的Nginx
適用于應(yīng)用服務(wù)器的tomcat
2.在前臺(tái)啟動(dòng)Docker容器
如果不指定-d選項(xiàng),則docker-compose將在前臺(tái)啟動(dòng)所有服務(wù)。
當(dāng)您調(diào)試Docker容器,映像或服務(wù)的任何與啟動(dòng)相關(guān)的問題時(shí),這將很有幫助。在這種情況下,您可以直接在屏幕上查看所有日志消息。
在這種情況下,應(yīng)用程序?qū)?dòng)并運(yùn)行,直到您按Ctrl-C取消前臺(tái)進(jìn)程為止。
在這種情況下,按Ctrl-C等效于執(zhí)行“ docker-compose stop”。因此,它將正常停止所有容器。
3.其他docker-compose啟動(dòng)選項(xiàng)
使用docker-compose up時(shí),如果docker-compose.yml文件中有任何影響容器的更改,它們將停止并重新創(chuàng)建。
但是,您可以強(qiáng)制docker-compose不要停止并重新創(chuàng)建容器,您可以在docker-compose啟動(dòng)期間使用–no-recreate選項(xiàng),如下所示。換句話說,如果容器已經(jīng)存在,則不會(huì)重新創(chuàng)建它。
您也可以相反。即使docker-compose.yml中的內(nèi)容未更改,以下內(nèi)容也會(huì)強(qiáng)制重新創(chuàng)建容器。
您還可以指定超時(shí)值。默認(rèn)值為10秒,但以下命令將使用30秒的超時(shí)值。
以下是一些可以與“ docker-compose up”一起使用的附加選項(xiàng)
–abort-on-container-exit如果停止任何容器,則將停止所有容器。您不能將此選項(xiàng)與-d一起使用,而必須單獨(dú)使用此選項(xiàng)。
–no-deps這將不會(huì)啟動(dòng)任何鏈接的依賴服務(wù)。
–no-build即使圖像丟失,也不會(huì)生成圖像
–no-color在輸出中,將不顯示任何顏色。這將在屏幕上顯示單色輸出。
4.停止所有Docker容器
要停止在前臺(tái)運(yùn)行的Docker應(yīng)用程序,只需按Ctrl-C即可,如上圖所示。
但是,要停止在后臺(tái)運(yùn)行的Docker應(yīng)用程序,請(qǐng)使用docker-compose stop,如下所示。
停止Docker應(yīng)用程序容器有兩個(gè)步驟:
首先,使用docker-compose stop停止正在運(yùn)行的容器
其次,使用docker-compose rm -f刪除停止的容器
使用docker-compose stop停止應(yīng)用程序容器: