docker-compose使用筆記


繼上篇 Docker使用筆記 ,成功地在一台服務器上創建了docker 鏡像倉庫,然后在其它服務器 下載這個倉庫的鏡像,並試運行。這對於做多機子負載運維工作,已經是非常便利了,一旦我們在一台服務器上發布過服務之后,后面就不用在其它服務器上重復運維操作,只需2步即可:下載鏡像,運行鏡像。

但是新的問題來了,如果第一台機子布署的這個應用,是一個微服務架構,或者多應用分布式架構,站點加服務,一共有幾十個,那也是比較麻煩的事情。有沒有一種方式可以一次性配置,一鍵發布呢?當時是有的,我們可以手動寫批處理命令。不過還是要花費不少的時間和精力。Docker-compose可以非常便利地解決這個問題,只需要寫一份配置文件,然后執行即可。這要比自己寫批處理命令要來得高效。

下面是docker-compose的安裝,ubuntu系統安裝都是快:  #apt install docker-compose  可以去點根煙了...

回來看看安裝情況, #docker-compose version

docker-compose version 1.8.0, build unknown
docker-py version: 1.9.0
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016

發現版本有點低,不過也沒關系

 

下面是寫一份 docker-compose.yaml

我這份文件比較簡單,就是部署2個 web app

version: "2"
services:
 app-1:
  image: 192.168.40.128:5000/dotnetimage:1.0
  container_name: dotnetapp-container-1
  expose:
   - "80"
  ports:
   - "8022:80"
  networks:
  - dotnetcore-network

 app-2:
  image: 192.168.40.128:5000/dotnetimage:1.0
  container_name: dotnetapp-container-2
  expose:
   - "80"
  ports:
   - "8023:80"
  networks:
   - dotnetcore-network

networks: ##定義網絡組
 dotnetcore-network: ## 網絡組名稱
  driver: bridge ## 網絡的模式

版本號只能選2, 因為安裝的dock-compose版本有點低

2個容器都是用着同一個私有倉庫, 192.168.40.128:5000/dotnetimage:1.0

2個不同的對外端口,8022,8023

分別自定義了容器名:dotnetapp-container-1  dotnetapp-container-2

將這個文件放在第2台服務器,此時這台服務器需要安裝 docker和docker-compose

在此文件所在的文件下執行 #docker-compose build

app-2 uses an image, skipping
app-1 uses an image, skipping

說是跳過,不知何故。不知到底是build成功了沒有。

嘗試性地再執行 #docker-compose up

容器創建成功了

但這是前台模式,必須Ctrl+C才能做其它事,只能先卸下來 #docker-compose down

然后再 #docker-compose up -d  后台進程運行

 

試驗結果:

 

一步到位,發布了2個web app, 這就是容器編排 docker-compose 的魅力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM