8.使用Docker Compose管理多個容器
阿新 • • 發佈:2019-01-02
http://dockone.io/article/834
Docker Compose是一個用來定義和運行復雜應用的Docker工具。使用Compose,你可以在一個檔案中定義一個多容器應用,然後使用一條命令來啟動你的應用,完成一切準備工作。一個使用Docker容器的應用,通常由多個容器組成。使用Docker Compose,不再需要使用shell指令碼來啟動容器。在配置檔案中,所有的容器通過
- github.com/docker/compose
services
來定義,然後使用
docker-compose
指令碼來啟動,停止和重啟應用,和應用中的服務以及所有依賴服務的容器。完整的命令列表如下:參考 https://docs.docker.com/compose/install/ 。你能執行Compose在OSX和64位Linux。當前不支援Windows作業系統。build
構建或重建服務
help
命令幫助
kill
殺掉容器
logs
顯示容器的輸出內容
port
列印繫結的開放埠
ps
顯示容器
pull
拉取服務映象
restart
重啟服務
rm
刪除停止的容器
run
執行一個一次性命令
scale
設定服務的容器數目
start
開啟服務
stop
停止服務
up
建立並啟動容器
8.1. 安裝Docker Compose
8.2. 配置檔案
1.Compose的配置檔案是docker-compose.yml
。讓我們看看下面這個檔案:
這個檔案在 https://raw.githubusercontent. ... dees/ ,它表明:
a. 定義了兩個服務分別叫做
mysqldb
和
mywildfy
b. 使用
image
定義每個服務的映象名
c. MySQL容器的環境變數定義在
environment
d. MySQL容器使用
links
和WildFly容器連結
e. 使用
ports
實現埠轉發
8.3. 啟動服務
1.如果你從網際網路執行,將docker-compose-internet.yml
儲存為
docker-compose.yml
。
2.如果你使用教師給的映象,將
docker-compose-instructor.yml
儲存為
docker-compose.yml
。
3.使用下面的命令,所有的服務將使用後臺模式被啟動
顯示的輸出如下:
Creating attendees_mysqldb_1... Creating attendees_mywildfly_1...
使用
-f
指定代替的compose檔案。
使用
-p
指定代替compose檔案所在的目錄。
4.驗證啟動的服務
這裡提供了一個整合的列表顯示所有啟動的服務和容器。
同時,通常使用
docker ps
命令來驗證應用的容器,和在Docker主機上執行的其他容器。
5.查詢服務日誌
8.4. 驗證應用
1.通過 http://dockerhost:32773/employ ... yees/ 訪問應用。在瀏覽器裡顯示如下:使用docker-compose ps
命令顯示埠
8.5. 擴充套件服務
你能像這樣擴充套件服務:檢查日誌:
檢查執行的例項:
Name Command State Ports
rafael_mysqldb_1 /entrypoint.sh mysqld Up 3306/tcprafael_mywildfly_1 /opt/jboss/wildfly/customi ... Up 0.0.0.0:32773->8080/tcp
rafael_mywildfly_2 /opt/jboss/wildfly/customi ... Up 0.0.0.0:32777->8080/tcp
rafael_mywildfly_3 /opt/jboss/wildfly/customi ... Up 0.0.0.0:32780->8080/tcp
rafael_mywildfly_4 /opt/jboss/wildfly/customi ... Up 0.0.0.0:32781->8080/tcp
你也能減少執行的例項數目:
8.6. 停止服務
停止服務:警告:再次停止和啟動將會得到如下錯誤:原文連結:Multiple Containers Using Docker Compose
這是因為JDBC資源在每個執行的容器中建立,在實際情況下,這是已經寫在配置中的。