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檔案中定義。
透過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"]
docker-compose up -d
配置同上
修改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中文網其他相關文章!