天天看點

docker進階實踐之compose內建式應用組合

一、Compose簡介

docker進階實踐之compose內建式應用組合
  1. Compose是docker官方開源項目之一。負責實作快速編排docker容器叢集,其定位是 定義和運作多個docker容器的應用。
  2. 稍微有docker基礎的小夥伴們,應該都知道借助Dockerfile模闆檔案可以非常友善地定義一個單獨的docker應用容器。但是,日常工作中,我們經常需要多個容器互相配合來完成某項任務。(例如:要實作一個Web項目,除了Web服務容器本身,往往還需要再加上資料庫服務容器,大型網際網路架構還會考慮很多的中間件服務容器)不巧,Compose恰好就能很好地幫助我們完成這項工作!
  3. 使用Compose有2個非常重要的概念需要注意:
  • 服務(service):一個應用的容器,實際上可以包括若幹運作相同鏡像的容器執行個體。
  • 項目(project):一組關聯的應用容器組成的一個完整業務單元。
  1. 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
    docker進階實踐之compose內建式應用組合

看到上圖所示,表明 dubbo-admin 服務已成功啟動!

  • 在浏覽器位址欄通路 http://伺服器ip:7001 進行驗證。登入使用者密碼為:
root/root 

guest/guest
           

dubbo-admin 界面如下:

docker進階實踐之compose內建式應用組合

四、小結

  • 運作docker-compose 有一個必要條件:docker服務必須處于正常工作狀态。
  • docker-compose 的使用屬于docker的進階實踐,故要求具備一定的docker基礎知識。

繼續閱讀