溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

docker-compose鏡像怎么發(fā)布springboot項(xiàng)目

發(fā)布時(shí)間:2022-04-06 15:35:25 來源:億速云 閱讀:229 作者:iii 欄目:移動(dòng)開發(fā)

這篇文章主要介紹了docker-compose鏡像怎么發(fā)布springboot項(xiàng)目的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇docker-compose鏡像怎么發(fā)布springboot項(xiàng)目文章都會(huì)有所收獲,下面我們一起來看看吧。

簡介

Docker-Compose項(xiàng)目是Docker官方的開源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì)Docker容器集群的快速編排。Compose允許用戶通過一個(gè)單獨(dú)的docker-compose.yml模板文件(YAML 格式)來定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目(project)。Docker-Compose項(xiàng)目由Python編寫,調(diào)用Docker服務(wù)提供的API來對(duì)容器進(jìn)行管理。因此,只要所操作的平臺(tái)支持Docker API,就可以在其上利用Compose來進(jìn)行編排管理。

Docker-Compose將所管理的容器分為三層,分別是工程(project),服務(wù)(service)以及容器(container)。Docker-Compose運(yùn)行目錄下的所有文件(docker-compose.yml,extends文件或環(huán)境變量文件等)組成一個(gè)工程,若無特殊指定工程名即為當(dāng)前目錄名。一個(gè)工程當(dāng)中可包含多個(gè)服務(wù),每個(gè)服務(wù)中定義了容器運(yùn)行的鏡像,參數(shù),依賴。一個(gè)服務(wù)當(dāng)中可包括多個(gè)容器實(shí)例,Docker-Compose并沒有解決負(fù)載均衡的問題,因此需要借助其它工具實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)及負(fù)載均衡。

Docker-Compose的工程配置文件默認(rèn)為docker-compose.yml,可通過環(huán)境變量COMPOSE_FILE或-f參數(shù)自定義配置文件,其定義了多個(gè)有依賴關(guān)系的服務(wù)及每個(gè)服務(wù)運(yùn)行的容器。
使用一個(gè)Dockerfile模板文件,可以讓用戶很方便的定義一個(gè)單獨(dú)的應(yīng)用容器。在工作中,經(jīng)常會(huì)碰到需要多個(gè)容器相互配合來完成某項(xiàng)任務(wù)的情況。例如要實(shí)現(xiàn)一個(gè)Web項(xiàng)目,除了Web服務(wù)容器本身,往往還需要再加上后端的數(shù)據(jù)庫服務(wù)容器,甚至還包括負(fù)載均衡容器等。

常用命令

docker-compose

介紹

Compose的作用是“定義和運(yùn)行多個(gè)Docker容器的應(yīng)用”。使用Compose,你可以在一個(gè)配置文件(yaml格式)中配置你應(yīng)用的服務(wù),然后使用一個(gè)命令,即可創(chuàng)建并啟動(dòng)配置中引用的所有服務(wù)。
Compose中兩個(gè)重要概念:
? 服務(wù) (service):一個(gè)應(yīng)用的容器,實(shí)際上可以包括若干運(yùn)行相同鏡像的容器實(shí)例。
? 項(xiàng)目 (project):由一組關(guān)聯(lián)的應(yīng)用容器組成的一個(gè)完整業(yè)務(wù)單元,在 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

給二進(jìn)制下載文件可執(zhí)行的權(quán)限

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

驗(yàn)證是否安裝

docker-compose --version

卸載
如果是二進(jìn)制包方式安裝的,刪除二進(jìn)制文件即可

rm /usr/local/bin/docker-compose

目錄結(jié)構(gòu)

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的使用非常簡單,只需要編寫一個(gè)docker-compose.yml,然后使用docker-compose 命令操作即可。docker-compose.yml描述了容器的配置,而docker-compose 命令描述了對(duì)容器的操作。
1.我們使用一個(gè)微服務(wù)項(xiàng)目先來做一個(gè)簡單的例子,首先創(chuàng)建一個(gè)compose的工作目錄,然后創(chuàng)建一個(gè)jenkinsTest文件夾,里面放可執(zhí)行jar包和編寫一個(gè)Dockerfile文件,目錄結(jié)構(gòu)如下:
jenkins里面存放自己測試上傳的jar包

docker-compose鏡像怎么發(fā)布springboot項(xiàng)目

docker-compose.yml

version: '3.1'  #這里要指定docker-compose對(duì)應(yīng)的docker版本
services:
  jenkinstest:             #指定服務(wù)名
    #image: jenkinstest  #指定鏡像名稱 小寫不然會(huì)報(bào)錯(cuò)
    build: ./jenkinsTest   #指定Dockfile所在路徑
    ports:
      - 8099:8099   #指定端口映射
    expose:
      - 8099  #對(duì)外暴露的服務(wù)端口

Dockerfile文件

FROM adoptopenjdk/openjdk8:jdk8u-centos-nightly

#作者
MAINTAINER lkz

# 鏡像要暴露的端口,如要使用端口,在執(zhí)行docker run命令時(shí)使用-p生效
EXPOSE 8099
 
COPY jenkinsTest.jar 11.jar 
# 在鏡像運(yùn)行為容器后執(zhí)行的命令
ENTRYPOINT ["java","-jar","11.jar"]

啟動(dòng)微服務(wù),可以加上參數(shù)-d后臺(tái)啟動(dòng)

docker-compose up -d

docker-compose鏡像怎么發(fā)布springboot項(xiàng)目

使用Docker Compose編排SpringCloud微服務(wù)

配置同上
修改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

關(guān)于“docker-compose鏡像怎么發(fā)布springboot項(xiàng)目”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“docker-compose鏡像怎么發(fā)布springboot項(xiàng)目”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI