微服務架構 ------ DockerCompose從安裝到項目部署


DockerCompose的目的:簡化Docker的啟動和停止流程,以及編排Docker啟動服務與服務之間的關系

DockerCompose的安裝:curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

           chmod +x /usr/local/bin/docker-compose  

           docker-compose version

  1. curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m`>/usr/local/bin/docker-compose

 


docker-compose.yml文件的編寫,跟springboot中配置文件編寫的格式一樣,只是在寫yml文件的時候不能使用tab鍵縮進,不信可以試試

寫了一個簡單的tomcat的配置啟動配置文件

version: '3.1'
services: 
   tomcat: 
      restart: always
      image: tomcat
      container_name: tomcat
      ports: 
        - 8080:8080 

啟動命令:在當前文件夾下執行 docker-compose up 就能啟動tomcat     -d 后台運行

停止命令:docker-compose down  該命令會停止容器 並且 清除以docker-compose形式啟動的容器的記錄

原樣粘貼命令 :vi 某個文件之后    :set paste     再輸入i     就能按照復制的格式原樣粘貼

 

下面的操作都是在  /usr/local/    下面的文件夾下操作的,遵循linux文件夾工作范圍規定     如果你不想在該文件夾下  換其他地方也無所謂

部署tomcat

  1.docker-compose.yml    

version: '3.1'
services:
  tomcat:
    restart: always
    image: tomcat
    container_name: tomcat
    ports:
      - 8080:8080
    volumes:
      - ./webapps:/usr/local/tomcat/webapps
    environment:
      TZ: Asia/Shanghai

  2.運行  docker-compose up -d 

    這時在你所在的目錄下會生成一個文件夾  webapps  ,這個文件夾叫做 數據卷 ,這個位置與容器中的     

/usr/local/tomcat/webapps  位置共享內存,也就是說兩者的文件夾下的文件內容都是一致的,這樣就不用再擔心容器關閉的時候,應用數據持久化的問題

 

 

     即使容器刪除這塊的數據依然會保留

部署mysql

  1.docker-compose.yml

version: '3.1'
services:
  db:
    # 目前 latest 版本為 MySQL8.x
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
    ports:
      - 3306:3306
    volumes:
      - ./data:/var/lib/mysql
  # MySQL 的 Web 客戶端
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080

  2.同tomcat一樣,docker會在本地創建一個與容器中數據共享的存儲空間

 

  至此tomcat和mysql已經部署完成,至於如何部署項目,我想就不用我多說了吧 ?

簡單說一下:首先把項目打好的war包解壓到tomcat生成的webapps文件夾下刪除多余的文件, 將數據庫初始化語句和歷史數據執行導入,啟動兩個容器就可以了 。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM