docker compose可以友善我們快捷高效地管理容器的啟動、停止以及重新開機等操作,和批量管理容器,它類似于linux下的shell腳本,基于yaml文法,在該檔案裡我們可以描述應用的架構,比如用什麼鏡像、資料卷、網絡模式、監聽端口等資訊。我們可以在一個compose檔案中定義一個多容器的應用(比如jumpserver),然後通過該compose來啟動這個應用。
安裝compose的方法如下,下載下傳docker-compose然後放到/usr/local/bin/目錄下,再更改一下權限即可:
docker compose的安裝就這麼簡單,安裝完後,我們來檢視一下版本資訊:
說明:Compose區分Version 1和Version 2(Compose 1.6.0+,Docker Engine 1.10.0+)。Version 2支援更多的指令。Version 1沒有聲明版本預設是"version 1"。Version 1将來會被棄用。
以上我們已經安裝好了docker compose ,下面用一個簡單的示例示範一下如何使用docker compose,編輯.yml檔案,内容如下:
編輯完之後就可以啟動了:
然後docker ps看一下是否已啟動成功:
如果你沒有加 <code>entrypoint: tail -f /etc/passwd</code> 這樣的語句的話,那麼app2被啟動之後就會馬上關閉了,是以加這一句沒别的作用,就是為了不被馬上關閉。不信的話,我現在删除掉那兩個容器,然後再把 docker-compose.yml 檔案裡的那句指令給注釋掉,再啟動:
如上,可以看到,啟動是成功的,但是我dicker ps -a檢視卻隻有app1是在啟動狀态,而app2是在Exited狀态:
是以要加上 <code>entrypoint: tail -f /etc/passwd</code> 的原因就在這,這個語句的唯一作用就是防止容器被關閉,這是docker的一個特性,說實話我也不知道為嘛要加這樣的一句話,但是不加的話末尾啟動的那個容器就會被關閉,不過不一定非要寫 <code>tail -f /etc/passwd</code> ,也可以是其他可正常執行的指令。
<code>docker-compose --help</code> 可以檢視該指令的文檔,下面介紹幾個常用的指令參數:
停止已有的容器:
啟動已有的容器:
檢視容器的狀态:
删除容器:
停止并删除運作中的容器:
本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/2070201,如需轉載請自行聯系原作者