################################################

1、容器编排docker compose 为啥用??
1)、springboot项目

需要依赖redis、mysql5.7、nginx。
如果使用docker原生部署的话,则需要安装redis、mysql5、nigix容器,在才可以
springboot项目,这样的话部署项目的流程非常复杂
所以需要引入我们docker compose 实现容器编排技术

容器编排技术 docker compose 20210802_spring

 

 


i)、局域网容器

mysql容器、redis容器、nginx容器、es容器

springboot项目容器
kafka zk
nacos

容器编排技术 docker compose 20210802_mysql_02

 容器编排技术 docker compose 20210802_docker_03

注:docker最终解决了运行环境配置中的问题。------镜像文件低层封装好了

容器编排技术 docker compose 20210802_docker_04

 

 

 

ii)、容器编排

mysql容器
redis容器
nginx容器
es容器
springboot项目容器

容器编排技术 docker compose 20210802_spring_05

 

 

 

 

 

 

 

2、原理
######docker compose:容器集群的快速编排

 

开发一个springboot项目---大工程
1、依赖mysql
2、依赖redis
3、依赖ZK
需要在:docker-compose.yml配置项目工程依赖环境配置

 

 

 

  i)、3层: 工程project
        服务service
        容器contain


  ii)、工程文件:docker-compose.yml
          extends文件
          环境变量文件 COMPOSE_FILE或-f参数自定义配置文件
          定义了多个有依赖关系服务及每个服务运行


  iii)、工程 :多个服务(服务:n个容器运行镜像、参数、依赖)


  iiii)、负载均衡:借其他工具(服务发现及负载均衡)

 

 

 

 

容器编排技术 docker compose 20210802_mysql_06

 

 

 

 

 

 

 

2)、compose 重要概念

  i)、服务(service):一个应用的容器,实际可以包括若干运行相同镜像的容器实例

  ii)、项目(project):一组关联的应用容器组成一个完整业务单元,
          在docker-compose.yml文件中定义

    项目可以由多个服务(容器)关联而成,compose面向项目进行管理,通过子命令
         对项目中的一组容器进行便捷地生命周期管理

 

 

容器编排技术 docker compose 20210802_mysql_07

 

 

 

 

 

 

 

容器编排技术 docker compose 20210802_redis_08

 

 

 

 

 

           iii)、调用docker服务提供的API来对容器进行管理(docker api)


    docker-compse 分3层
      a)、项目层 springboot项目依赖于我们的mysql、redis、nginx
      一个项目由多个容器组成
      b)、服务层 运行一个镜像的实例

 

     容器编排技术 docker compose 20210802_redis_09

 

 

 

 

    c)、docker-compose编排容器

      mysql容器 redis容器 nginx容器 es容器
          springboot项目容器

            .....................docker-compose.yml.....................................

              

                    注:独立IP信息

                    容器编排技术 docker compose 20210802_nginx_10容器编排技术 docker compose 20210802_mysql_11容器编排技术 docker compose 20210802_mysql_12