docker-compose鏡像發(fā)布springboot項(xiàng)目的流程分析
簡(jiǎn)介
Docker-Compose項(xiàng)目是Docker官方的開(kāi)源項(xiàng)目,負(fù)責(zé)實(shí)現(xiàn)對(duì)Docker容器集群的快速編排。Compose允許用戶通過(guò)一個(gè)單獨(dú)的docker-compose.yml模板文件(YAML 格式)來(lái)定義一組相關(guān)聯(lián)的應(yīng)用容器為一個(gè)項(xiàng)目(project)。Docker-Compose項(xiàng)目由Python編寫(xiě),調(diào)用Docker服務(wù)提供的API來(lái)對(duì)容器進(jìn)行管理。因此,只要所操作的平臺(tái)支持Docker API,就可以在其上利用Compose來(lái)進(jìn)行編排管理。
Docker-Compose將所管理的容器分為三層,分別是工程(project),服務(wù)(service)以及容器(container)。Docker-Compose運(yùn)行目錄下的所有文件(docker-compose.yml,extends文件或環(huán)境變量文件等)組成一個(gè)工程,若無(wú)特殊指定工程名即為當(dāng)前目錄名。一個(gè)工程當(dāng)中可包含多個(gè)服務(wù),每個(gè)服務(wù)中定義了容器運(yùn)行的鏡像,參數(shù),依賴(lài)。一個(gè)服務(wù)當(dāng)中可包括多個(gè)容器實(shí)例,Docker-Compose并沒(méi)有解決負(fù)載均衡的問(wèn)題,因此需要借助其它工具實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)及負(fù)載均衡。
Docker-Compose的工程配置文件默認(rèn)為docker-compose.yml,可通過(guò)環(huán)境變量COMPOSE_FILE或-f參數(shù)自定義配置文件,其定義了多個(gè)有依賴(lài)關(guān)系的服務(wù)及每個(gè)服務(wù)運(yùn)行的容器。
使用一個(gè)Dockerfile模板文件,可以讓用戶很方便的定義一個(gè)單獨(dú)的應(yīng)用容器。在工作中,經(jīng)常會(huì)碰到需要多個(gè)容器相互配合來(lái)完成某項(xiàng)任務(wù)的情況。例如要實(shí)現(xiàn)一個(gè)Web項(xiàng)目,除了Web服務(wù)容器本身,往往還需要再加上后端的數(shù)據(jù)庫(kù)服務(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的安裝
Compose的安裝有多種方式,本文講解通過(guò)shell安裝的方式。其他安裝方式如有興趣,
可以查看Docker的官方文檔:https://docs.docker.com/compose/install/
docker compose安裝步驟
通過(guò)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的使用非常簡(jiǎn)單,只需要編寫(xiě)一個(gè)docker-compose.yml,然后使用docker-compose 命令操作即可。docker-compose.yml描述了容器的配置,而docker-compose 命令描述了對(duì)容器的操作。
1.我們使用一個(gè)微服務(wù)項(xiàng)目先來(lái)做一個(gè)簡(jiǎn)單的例子,首先創(chuàng)建一個(gè)compose的工作目錄,然后創(chuàng)建一個(gè)jenkinsTest文件夾,里面放可執(zhí)行jar包和編寫(xiě)一個(gè)Dockerfile文件,目錄結(jié)構(gòu)如下:
jenkins里面存放自己測(cè)試上傳的jar包

docker-compose.yml
version: '3.1' #這里要指定docker-compose對(duì)應(yīng)的docker版本
services:
jenkinstest: #指定服務(wù)名
#image: jenkinstest #指定鏡像名稱(chēng) 小寫(xiě)不然會(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編排SpringCloud微服務(wù)
配置同上
修改docker-compose.yml文件
version: '3.3'
services:
eureka:
image: eureka:v1 #指定鏡像名稱(chēng)
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)目的流程分析的文章就介紹到這了,更多相關(guān)docker-compose發(fā)布springboot項(xiàng)目?jī)?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Docker?發(fā)布自定義鏡像到公共倉(cāng)庫(kù)的方法實(shí)現(xiàn)
- Docker本地鏡像發(fā)布到阿里云的實(shí)現(xiàn)
- Docker部署Go項(xiàng)目發(fā)布鏡像到倉(cāng)庫(kù)
- Docker發(fā)布鏡像到DockerHub與阿里云容器
- Docker將鏡像文件發(fā)布到阿里云的詳細(xì)過(guò)程
- docker將本地鏡像發(fā)布到阿里云的實(shí)現(xiàn)方法
- Docker鏡像發(fā)布到Docker?Hub的實(shí)現(xiàn)方法
- 如何將本地構(gòu)建好的docker鏡像發(fā)布到dockerhub
- Visual Studio發(fā)布 Docker 鏡像的實(shí)現(xiàn)步驟
相關(guān)文章
docker報(bào)錯(cuò)x509:certificate has expired or
這篇文章主要介紹了docker報(bào)錯(cuò)x509:certificate has expired or is not yet valid問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說(shuō)明
這篇文章主要介紹了Dockerfile 中 VOLUME 與 docker -v 的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
docker日常使用的實(shí)用小技巧總結(jié)(推薦)
docker是持續(xù)構(gòu)建應(yīng)用交付的一大利器也,但是要使工具發(fā)揮最大的功效還需要知道一些小技巧。下面這篇文章給大家主要總結(jié)介紹了關(guān)于docker日常使用的一些實(shí)用小技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒。2017-09-09
Docker部署nGrinder性能測(cè)試平臺(tái)過(guò)程解析
這篇文章主要介紹了Docker部署nGrinder性能測(cè)試平臺(tái)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
yum下載rpm以及相關(guān)依賴(lài)的方式離線安裝docker
今天小編就為大家分享一篇關(guān)于yum下載rpm以及相關(guān)依賴(lài)的方式離線安裝docker,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
解決docker pull報(bào)錯(cuò)Get"https://registry-1.docker.io/v2
解決docker報(bào)錯(cuò)Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)的方法是配置加速地址,添加相關(guān)配置后保存并重啟docker2026-03-03
Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)
本文主要介紹了Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn),主要包括編寫(xiě)Dockerfile、構(gòu)建鏡像、測(cè)試鏡像等操作,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
使用docker compose一鍵部署多個(gè)服務(wù)的方法
docker compose 是 docker 官方的開(kāi)源項(xiàng)目,用來(lái)實(shí)現(xiàn)對(duì) docker 容器集群的快速編排,通過(guò)docker-compose可以一鍵創(chuàng)建和刪除多個(gè)容器 ,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-01-01

