您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何使用Docker-Compose一鍵部署java微服務(wù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
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. 所有的環(huán)境都可以使用 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 什么是服務(wù)。
docker-compose.yml 這個文件怎么寫!
Run docker-compose up and Compose starts and runs your entire app.
啟動項目
作用:批量容器編排。
理解
Compose 是Docker官方的開源項目。需要安裝! Dockerfile 讓程序在任何地方運行。 web服務(wù)。 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 個服務(wù)。 Compose :重要的概念。 服務(wù)services, 容器。應(yīng)用。(web、redis、mysql....) 項目project。 一組關(guān)聯(lián)的容器。 博客。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
設(shè)置權(quán)限
sudo chmod +x /usr/local/bin/docker-compose
測試,在任意目錄下輸入docker-compose
python 應(yīng)用。計數(shù)器。 redis!
官網(wǎng)地址:https://docs.docker.com/compose/gettingstarted/
前提需要安裝最新版的docker-compose,否則會報版本不兼容
1、應(yīng)用 app.py 2、Dockerfile 應(yīng)用打包為鏡像 3、Docker-compose yaml文件 (定義整個服務(wù),需要的環(huán)境。 web、redis) 完整的上線服務(wù)! 4、啟動 compose 項目(docker-compose up)
流程
1、創(chuàng)建網(wǎng)絡(luò) 2、執(zhí)行 Docker-compose yaml 3、啟動服務(wù)。
官網(wǎng)流程
創(chuàng)建文件夾
mkdir composetest cd composetest
創(chuàng)建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)
創(chuàng)建 requirements.txt
flask redis
創(chuàng)建 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"]
創(chuàng)建 docker-compose.yml
version: "3.9" services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"
運行 docker-compose up
成功截圖:
新建項目,完成計數(shù)功能
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微服務(wù)計數(shù)器功能,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"
上傳文件到服務(wù)器
執(zhí)行 docker-compose up
成功截圖
總結(jié):
未來項目只要有 docker-compose 文件。 按照這個規(guī)則,啟動編排容器。!
公司: docker-compose。 直接啟動。
網(wǎng)上開源項目: docker-compose 一鍵搞定。
假設(shè)項目要重新部署打包 docker-compose up --build # 重新構(gòu)建!
關(guān)于如何使用Docker-Compose一鍵部署java微服務(wù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。