一、Compose簡介
- Compose是docker官方開源項目之一。負責實作快速編排docker容器叢集,其定位是 定義和運作多個docker容器的應用。
- 稍微有docker基礎的小夥伴們,應該都知道借助Dockerfile模闆檔案可以非常友善地定義一個單獨的docker應用容器。但是,日常工作中,我們經常需要多個容器互相配合來完成某項任務。(例如:要實作一個Web項目,除了Web服務容器本身,往往還需要再加上資料庫服務容器,大型網際網路架構還會考慮很多的中間件服務容器)不巧,Compose恰好就能很好地幫助我們完成這項工作!
- 使用Compose有2個非常重要的概念需要注意:
- 服務(service):一個應用的容器,實際上可以包括若幹運作相同鏡像的容器執行個體。
- 項目(project):一組關聯的應用容器組成的一個完整業務單元。
- Compose工作原理:Compose預設的管理對象是項目(project),通過子指令對項目中的一組容器進行便捷的生命周期管理;内部實際上調用了Docker服務提供的API 來管理容器。
二、安裝docker-compose
2.1 安裝和解除安裝
Compose支援 Linux/macOS/Windows 三大平台。
- Compose可以通過pip工具進行安裝
- Compose可以通過下載下傳編譯好的二進制檔案進行使用
- Compose還可以直接運作在Docker容器中
2.2 Linux機器上安裝docker-compose
Linux系統安裝docker-compose的2種方式:
- 下載下傳編譯好的二進制檔案
- 使用Python的包管理工具pip進行安裝
2.2.1 二進制包方式安裝docker-compose
從官方 GitHub Release 處直接下載下傳編譯好的二進制檔案即可。
例如,在 Linux 64 位系統上直接下載下傳對應的二進制包。
sudo curl -L https://github.com/docker/compose/releases/download/1.17.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose #賦予可執行權限
三、使用compose建構dubbo-admin服務
3.1 擷取 dubbo-admin 源碼
- 從 github 擷取 dubbo-admin 的 master 分支源碼
git clone -b master https://github.com/apache/incubator-dubbo-ops.git
- 修改 dubbo-admin 中的 application 配置檔案,将 zookeeper 位址改為 zookeeper://zookeeper:2181
- 使用 maven 進行編譯打包
mvn clean package -Dmaven.test.skip=true
3.2 編寫Dockerfile 檔案
- 在 dubbo-admin 目錄下編寫 Dockerfile 檔案,其内容如下:
# FROM,表示使用JDK8環境為基礎鏡像,如果鏡像不是本地的會從DockerHub進行下載下傳
FROM openjdk:8-jdk-alpine
# 作者
MAINTAINER study.163.com<[email protected]>
VOLUME /tmp
# ADD,拷貝檔案并且重命名
ADD ./target/dubbo-admin-0.0.1-SNAPSHOT.jar app.jar
# ENTRYPOINT,為了縮短Tomcat的啟動時間,添加java.security.egd的系統屬性執行/dev/urandoom 作為ENTRYPOINT
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
- 在 Dockerfile 檔案所在路徑下,執行 docker build -t dubbo-admin:1.0 . 進行docker容器的建構。
3.3 編寫 docker-compose.yml 檔案
- 在 dubbo-admin 目錄下編寫 docker-compose.yml 檔案,其内容模闆如下:
version: '3.4'
services:
zk_server:
image: zookeeper:3.4
ports:
- 2181:2181
dubbo-admin:
image: dubbo-admin:1.0
links:
- zk_server:zookeeper
ports:
- 7001:7001
3.4 運作 compose 項目
- 在 dokcer-compose.yml 檔案所在路徑下執行 docker-compose up
看到上圖所示,表明 dubbo-admin 服務已成功啟動!
- 在浏覽器位址欄通路 http://伺服器ip:7001 進行驗證。登入使用者密碼為:
root/root
guest/guest
dubbo-admin 界面如下:
四、小結
- 運作docker-compose 有一個必要條件:docker服務必須處于正常工作狀态。
- docker-compose 的使用屬于docker的進階實踐,故要求具備一定的docker基礎知識。