您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何使用Docker-Compose一鍵部署java微服務,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Docker Compose 來輕松高效的管理容器,定義運行多個容器
官方介紹
定義、運行多個容器。 YAML file 配置文件。 single command。 命令有哪些? Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration. To learn more about all the features of Compose, see the list of features. 所有的環境都可以使用 Compose。 Compose works in all environments: production, staging, development, testing, as well as CI workflows. You can learn more about each case in Common Use Cases. 三步驟: Using Compose is basically a three-step process:
Define your app’s environment with a Dockerfile so it can be reproduced anywhere.
Dockerfile 保證我們的項目在任何地方可以運行。
Define the services that make up your app in docker-compose.yml so they can be run together in an isolated environment.
services 什么是服務。
docker-compose.yml 這個文件怎么寫!
Run docker-compose up and Compose starts and runs your entire app.
啟動項目
作用:批量容器編排。
理解
Compose 是Docker官方的開源項目。需要安裝! Dockerfile 讓程序在任何地方運行。 web服務。 redis、mysql、nginx ... 多個容器。 run Compose
version: "3.9" # optional since v1.27.0 services: web: build: . ports: - "5000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redis volumes: logvolume01: {}
docker-compose up 100 個服務。 Compose :重要的概念。 服務services, 容器。應用。(web、redis、mysql....) 項目project。 一組關聯的容器。 博客。web、mysql。
下載Docker-Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 這個可能快點! curl -L https://get.daocloud.io/docker/compose/releases/download/1.28.6/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
設置權限
sudo chmod +x /usr/local/bin/docker-compose
測試,在任意目錄下輸入docker-compose
python 應用。計數器。 redis!
官網地址:https://docs.docker.com/compose/gettingstarted/
前提需要安裝最新版的docker-compose,否則會報版本不兼容
1、應用 app.py 2、Dockerfile 應用打包為鏡像 3、Docker-compose yaml文件 (定義整個服務,需要的環境。 web、redis) 完整的上線服務! 4、啟動 compose 項目(docker-compose up)
流程
1、創建網絡 2、執行 Docker-compose yaml 3、啟動服務。
官網流程
創建文件夾
mkdir composetest cd composetest
創建app.py
import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times.\n'.format(count)
創建 requirements.txt
flask redis
創建 Dockerfile
FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP=app.py ENV FLASK_RUN_HOST=0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt EXPOSE 5000 COPY . . CMD ["flask", "run"]
創建 docker-compose.yml
version: "3.9" services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"
運行 docker-compose up
成功截圖:
新建項目,完成計數功能
package com.atxiaodei.hellodockercompose.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @ClassName HelloController * @Deacription TODO * @Author 王盟 * @Date 2021/4/6 18:58 * @Version 1.0 **/ @RestController public class HelloController { @Autowired StringRedisTemplate redisTemplate; @RequestMapping("/hello") public String helloCount(){ Long view = redisTemplate.opsForValue().increment("view"); return "使用dockercompose部署java微服務計數器功能,view"+view; } }
編寫Dockerfile
FROM java:8 COPY *.jar /app.jar CMD ["--server.port=8080"] EXPOSE 8080 ENTRYPOINT ["java","-jar","/app.jar"]
編寫docker-compose.yml
version: '3.9' services: wangmengapp: build: . image: wangmengapp depends_on: - redis ports: - "8080:8080" redis: image: "redis:alpine"
上傳文件到服務器
執行 docker-compose up
成功截圖
總結:
未來項目只要有 docker-compose 文件。 按照這個規則,啟動編排容器。!
公司: docker-compose。 直接啟動。
網上開源項目: docker-compose 一鍵搞定。
假設項目要重新部署打包 docker-compose up --build # 重新構建!
關于如何使用Docker-Compose一鍵部署java微服務就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。