佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > docker-compose鏡像發(fā)布springboot項目的流程分析

docker-compose鏡像發(fā)布springboot項目的流程分析

熱門標簽:智能手機 網(wǎng)站建設(shè) 美圖手機 阿里云 使用U盤裝系統(tǒng) 檢查注冊表項 硅谷的囚徒呼叫中心 百度競價點擊價格的計算公式

簡介

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

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

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

常用命令

docker-compose

介紹

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

Docker Compose的安裝

Compose的安裝有多種方式,本文講解通過shell安裝的方式。其他安裝方式如有興趣,
可以查看Docker的官方文檔:https://docs.docker.com/compose/install/

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

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

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

驗證是否安裝

docker-compose --version

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

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

docker-compose.yml

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

Dockerfile文件

FROM adoptopenjdk/openjdk8:jdk8u-centos-nightly

#作者
MAINTAINER lkz

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

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

docker-compose up -d

使用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項目的流程分析的文章就介紹到這了,更多相關(guān)docker-compose發(fā)布springboot項目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標簽:賀州 煙臺 山南 湖北 黃山 通遼 湘潭 懷化

巨人網(wǎng)絡(luò)通訊聲明:本文標題《docker-compose鏡像發(fā)布springboot項目的流程分析》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    黑河市| 两当县| 陆河县| 苏尼特右旗| 二连浩特市| 正阳县| 日照市| 洛阳市| 汕头市| 都江堰市| 濉溪县| 临城县| 樟树市| 山阴县| 叙永县| 阜平县| 元阳县| 壶关县| 甘南县| 台湾省| 吉林省| 平阳县| 临沂市| 三穗县| 罗平县| 九台市| 措勤县| 垣曲县| 镶黄旗| 三穗县| 金川县| 巴中市| 弥渡县| 五原县| 富平县| 汨罗市| 饶河县| 琼海市| 新河县| 永州市| 宁夏|