1. 程式人生 > 實用技巧 >使用docker-compose單機發布多個服務

使用docker-compose單機發布多個服務

一、安裝docker-compose

#github下載地址-下載慢
curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#高速下載地址
curl -L https://get.daocloud.io/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

#給予執行許可權
chmod +x /usr/local/bin/docker-compose

#檢視
docer-compose -v 

#解除安裝
rm /usr/local/bin/docker-compose

二、專案配置

2.1、專案結構

一個專案一個Dockerfile與專案pom檔案同級,docker-compose.yml檔案與專案同級

2.2、專案一-Dockerfile

#依賴jdk8
FROM java:8
#維護者資訊
MAINTAINER duchong <[email protected]>
#系統編碼
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#容器卷
VOLUME /tmp
#拷貝jar包
COPY target/docker-demo-0.0.1-SNAPSHOT.jar /docker-demo.jar
#暴漏埠
EXPOSE 8080
#容器啟動時執行
ENTRYPOINT [ "java", "-jar", "/docker-demo.jar" ]

2.3、專案二-Dockerfile

#依賴jdk8
FROM java:8
#維護者資訊
MAINTAINER duchong <[email protected]>
#系統編碼
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#容器卷
VOLUME /tmp
#拷貝jar包
COPY target/docker-demo2-0.0.1-SNAPSHOT.jar /docker-demo2.jar
#暴漏埠
EXPOSE 8080
#容器啟動時執行
ENTRYPOINT [ "java", "-jar", "/docker-demo2.jar" ]

2.4、docker-compose

#compose 檔案的版本
version: "3"
# 一個services 下面包含多個專案服務
services:
  # 服務1
  docker-demo:
    #映象地址
    image: registry.cn-hangzhou.aliyuncs.com/duchong/demo-repo/summer_travel/docker-demo:1.0
    #容器名稱
    container_name: docker-demo
    #無論如何容器都會重啟
    restart: always
    #對映埠
    ports:
      - "8080:8080"
  # 服務2
  docker-demo2:
    #映象地址
    image: registry.cn-hangzhou.aliyuncs.com/duchong/demo-repo/summer_travel/docker-demo2:1.0
    #容器名稱
    container_name: docker-demo2
    #無論如何容器都會重啟
    restart: always
    #對映埠
    ports:
      - "8081:8081"

  # 服務3、4、5

三、專案釋出

專案一和專案二根據各自的Dockerfile生成映象,並上傳到阿里雲,具體怎麼操作,不知道的話可以看這篇:

[使用docker外掛部署應用,看完這一篇就夠了](https://www.cnblogs.com/geekdc/p/13524916.html)

將2.4中的docker-compose.yml 上傳到/home/context/資料夾下

[root@vm context]# cd /home/context/
[root@vm context]# ls
docker-compose.yml
[root@vm context]# docker-compose up -d 
Creating network "context_default" with the default driver
Creating docker-demo  ... done
Creating docker-demo2 ... done
[root@vm context]# docker ps -a | grep docker-demo
4577bcca724d        registry.cn-hangzhou.aliyuncs.com/duchong/demo-repo/summer_travel/docker-demo:1.0    "java -jar /docker-d…"   18 seconds ago      Up 17 seconds              0.0.0.0:8080->8080/tcp                                                                       docker-demo
5e698b122fda        registry.cn-hangzhou.aliyuncs.com/duchong/demo-repo/summer_travel/docker-demo2:1.0   "java -jar /docker-d…"   18 seconds ago      Up 17 seconds              8080/tcp, 0.0.0.0:8081->8081/tcp 

四、瀏覽器測試

搞定!!!