溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何使用Docker-Compose一鍵部署java微服務(wù)

發(fā)布時間:2021-09-18 13:51:09 來源:億速云 閱讀:672 作者:柒染 欄目:編程語言

這篇文章將為大家詳細(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:

  1. Define your app’s environment with a Dockerfile so it can be reproduced anywhere.

  • Dockerfile 保證我們的項目在任何地方可以運行。

  1. 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 這個文件怎么寫!

  1. 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

下載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

如何使用Docker-Compose一鍵部署java微服務(wù)

官方體驗

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

    成功截圖:

如何使用Docker-Compose一鍵部署java微服務(wù)

Java微服務(wù)項目實戰(zhàn)計數(shù)器使用DockerCompose部署
  • 新建項目,完成計數(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

    成功截圖

如何使用Docker-Compose一鍵部署java微服務(wù)

總結(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é)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI