首頁  >  文章  >  Java  >  docker-compose映像怎麼發佈springboot項目

docker-compose映像怎麼發佈springboot項目

王林
王林轉載
2023-05-11 10:13:051165瀏覽

簡介

Docker-Compose專案是Docker官方的開源項目,負責實現對Docker容器叢集的快速編排。 Compose允許使用者透過一個單獨的docker-compose.yml範本檔案(YAML 格式)來定義一組相關聯的應用程式容器為一個專案(project)。 Docker-Compose專案由Python編寫,呼叫Docker服務提供的API來對容器進行管理。因此,只要所操作的平台支援Docker API,就可以在其上利用Compose來進行編排管理。

Docker-Compose將所管理的容器分成三層,分別是工程(project),服務(service)以及容器(container)。 Docker-Compose運作目錄下的所有檔案(docker-compose.yml,extends檔案或環境變數檔案等)組成一個工程,若無特殊指定工程名即為目前目錄名稱。一個工程當中可包含多個服務,每個服務中定義了容器運作的鏡像,參數,依賴。一個服務當中可包含多個容器實例,Docker-Compose並沒有解決負載平衡的問題,因此需要藉助其它工具實現服務發現及負載平衡。

Docker-Compose的工程設定檔預設為docker-compose.yml,可透過環境變數COMPOSE_FILE或-f參數自訂設定文件,其定義了多個有依賴關係的服務及每個服務運行的容器。
使用一個Dockerfile模板文件,可以讓使用者很方便的定義一個單獨的應用容器。在工作中,常常會碰到需要多個容器相互配合來完成某項任務的情況。例如要實作一個Web項目,除了Web服務容器本身,往往還需要再加上後端的資料庫服務容器,甚至還包含負載平衡容器等。

常用指令

docker-compose

介紹

Compose的作用是「定義和執行多個Docker容器的應用程式」。使用Compose,你可以在一個設定檔(yaml格式)中設定你所應用的服務,然後使用一個命令,即可建立並啟動設定中引用的所有服務。
Compose中兩個重要概念:
• 服務 (service):一個應用的容器,實際上可以包含若干運行相同鏡像的容器實例。
• 專案 (project):由一組關聯的應用容器組成的完整業務單元,在 docker-compose.yml檔案中定義。

docker compose安裝步驟

透過GitHub連結下載安裝非ROOT用戶記得加sudo

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

給二進位下載檔案可執行的權限

sudo chmod +x /usr/local/bin/docker-compose

驗證是否安裝

docker-compose --version

卸載
如果是二進位套件方式安裝的,刪除二進位檔案即可

rm /usr/local/bin/docker-compose

目錄結構

compose
	docker-compose.yml
	eureka
		Dockerfile
		eureka-server-2.0.2.RELEASE.jar
	user
		Dockerfile
		user-2.0.2.RELEASE.jar
	power
		Dockerfile
		power-2.0.2.RELEASE.jar

範例

#Compose的使用非常簡單,只需要寫一個docker-compose.yml,然後使用docker-compose 指令操作。 docker-compose.yml描述了容器的配置,而docker-compose 指令則描述了對容器的操作。
1.我們使用一個微服務項目先來做一個簡單的例子,首先創建一個compose的工作目錄,然後創建一個jenkinsTest文件夾,裡面放可執行jar包和編寫一個Dockerfile文件,目錄結構如下:
jenkins裡面存放自己測試上傳的jar套件

docker-compose映像怎麼發佈springboot項目

docker-compose.yml

version: '3.1'  #这里要指定docker-compose对应的docker版本
services:
  jenkinstest:             #指定服务名
    #image: jenkinstest  #指定镜像名称 小写不然会报错
    build: ./jenkinsTest   #指定Dockfile所在路径
    ports:
      - 8099:8099   #指定端口映射
    expose:
      - 8099  #对外暴露的服务端口

Dockerfile檔案

FROM adoptopenjdk/openjdk8:jdk8u-centos-nightly

#作者
MAINTAINER lkz

# 镜像要暴露的端口,如要使用端口,在执行docker run命令时使用-p生效
EXPOSE 8099
 
COPY jenkinsTest.jar 11.jar 
# 在镜像运行为容器后执行的命令
ENTRYPOINT ["java","-jar","11.jar"]

啟動微服務,可以加上參數-d後台啟動

docker-compose up -d

docker-compose映像怎麼發佈springboot項目

使用Docker Compose編排SpringCloud微服務

配置同上
修改docker-compose.yml檔案

version: '3.3'
services:
  eureka:
    image: eureka:v1  #指定镜像名称
    build: ./eureka   #指定Dockfile所在路径
    ports:
     - 8080:8080
  user:
    image: user:v1
    build: ./user #指定Dockfile所在路径
    ports:
     - 8081:8081
  power:
    image: power:v1
    build: ./power #指定Dockfile所在路径
    ports:
     - 8082:8082

以上是docker-compose映像怎麼發佈springboot項目的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除