簡介
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.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編排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中文網其他相關文章!

JavadevelovermentIrelyPlatForm-DeTueTososeVeralFactors.1)JVMVariationsAffectPerformanceNandBehaviorAcroSsdifferentos.2)Nativelibrariesviajnijniiniininiinniinindrododerplatefform.3)

Java代碼在不同平台上運行時會有性能差異。 1)JVM的實現和優化策略不同,如OracleJDK和OpenJDK。 2)操作系統的特性,如內存管理和線程調度,也會影響性能。 3)可以通過選擇合適的JVM、調整JVM參數和代碼優化來提升性能。

Java'splatFormentenceHaslimitations不包括PerformanceOverhead,versionCompatibilityIsissues,挑戰WithnativelibraryIntegration,Platform-SpecificFeatures,andjvminstallation/jvminstallation/jvmintenance/jeartenance.therefactorscomplicatorscomplicatethe“ writeOnce”

PlatformIndependendecealLowsProgramStormonanyPlograwsStormanyPlatFormWithOutModification,而LileCross-PlatFormDevelopmentRequiredquiresMomePlatform-specificAdjustments.platFormIndependence,EneblesuniveByjava,EnablesuniversUniversAleversalexecutionbutmayCotutionButMayComproMisePerformance.cross.cross.cross-platformd

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runany where”哲學。 1)itusesbytiesebyTecodeThatrunsonAnyJvm-備用Platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

在Java中編寫平台特定代碼的原因包括訪問特定操作系統功能、與特定硬件交互和優化性能。 1)使用JNA或JNI訪問Windows註冊表;2)通過JNI與Linux特定硬件驅動程序交互;3)通過JNI使用Metal優化macOS上的遊戲性能。儘管如此,編寫平台特定代碼會影響代碼的可移植性、增加複雜性、可能帶來性能開銷和安全風險。

Java將通過雲原生應用、多平台部署和跨語言互操作進一步提昇平台獨立性。 1)雲原生應用將使用GraalVM和Quarkus提升啟動速度。 2)Java將擴展到嵌入式設備、移動設備和量子計算機。 3)通過GraalVM,Java將與Python、JavaScript等語言無縫集成,增強跨語言互操作性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中