zoukankan      html  css  js  c++  java
  • 微服务架构 ------ 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文件夹下删除多余的文件, 将数据库初始化语句和历史数据执行导入,启动两个容器就可以了 。

  • 相关阅读:
    Django shortcut functions
    Android 度量单位
    WPF 资源
    WPF Template
    python 常用库
    python 元类
    android中控制ListView宽度和高度
    layout可以显示,程序调用就出错
    请问在pulltorefreshGridView中的图片设置了大小之后怎么就不显示了呢
    Activity表单传值问题
  • 原文地址:https://www.cnblogs.com/zmeRecord/p/11807018.html
Copyright © 2011-2022 走看看