当前位置: 首页 > article >正文

Docker深度解析:Docker Compose

  1. 为什么使用 Docker Compose:
    1. 现在部署一个 SpringBoot 项目,需要依赖 redis、nginx、mysql
    2. 如果使用 docker 原生部署的话,需要安装 redis、mysql 和 nginx 容器,才可以启动 SpringBoot 项目
    3. 这样的话部署项目流程非常复杂,所以需要引入 Docker Compose 实现容器编排技术
  2. 概念:
    1. 服务(service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例
    2. 项目(project):由一个关联的应用容器组成一个完整业务单元,在 docker-compose.yml 文件中定义
    3. Compose 项目由 Python 编写,现实上调用了 Docker 服务提供的 API 来对内容进行管理
    4. 因此,只要操作的平台支持 Docker API,就可以在其上利用 Compose 来进行编排管理
    5. Dockerfile springboot.jar docker-compose
  3. Docker-Compose 分成三层:
    1. 项目层:springboot 项目依赖于我们的 MySQL、Redis、Nginx 等,一个项目是由多个容器组成
    2. 服务层:运行一个镜像的实例

Compose 安装:

  1. 访问 docker compose github 官网
  2. 将 docker-compose-Linux-x86_64 上传到服务器中,然后将其移动并更改名称
    mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
    
  3. 添加可执行的权限:
    sudo chmod +x /usr/local/bin/docker-compose
    
  4. 验证 docker-compose:
    docker-compose -v
    

Compose 常用命令:

  1. 创建并运行:docker-compose
    docker-compose -h    #查看帮助
    docker-compose up    #创建并运行所有容器
    docker-compose up -d    #创建并后台运行所有容器
    docker-compose -f docker-compose.yml up -d    #指定模板
    docker-compose down    #停止并删除容器、网络、卷、镜像
    
  2. 检查配置:
    docker-compose -h    #查看帮助
    docker-compose up    #创建并运行所有容器
    docker-compose up -d    #创建并后台运行所有容器
    docker-compose -f docker-compose.yml up -d    #指定模板
    docker-compose down    #停止并删除容器、网络、卷、镜像
    
  3. 启动  docker-compose 服务:
    docker-compose restart    #重启服务
    docker-compose start      #启动服务
    docker-compose stop       #停止服务
    

Compose 模板文件:

  1. 入门案例:
    1. 创建 docker-compose.yml 文件:
    2. 制定 docker-compose 内容:
      version:'3.0'
      service:
        tomcat: #服务名称
          image:tomcat:8  #镜像文件的名称
          ports:    #开放端口
            -8080:8080
    3. 运行 docker-compose:
      version: '3.0'
      services:
        tomcat80:     #服务名称
          #container_name: tomcat8080  #指定容器名称
          image: tomcat8
          ports:        #端口号的映射
            - 8080:8080
        tomcat81:      #服务名称
          #container_name: tomcat8080  #指定容器名称
          image: tomcat:8     #镜像文件的名称
          ports:
            - 8081:8080
          volumes:    #数据源  宿主机与容器数据共享
            - /usr/tomcat/webapps:/usr/local/tomcat/webapps
          networks:
            - boyatop
      networks:       #定义服务的桥
        boyatop
      
      


http://www.kler.cn/a/534349.html

相关文章:

  • pytorch实现门控循环单元 (GRU)
  • 在游戏本(6G显存)上本地部署Deepseek,运行一个14B大语言模型,并使用API访问
  • Java进阶笔记(中级)
  • JPA使用@EntityGraph立即加载关联实体
  • 文本复制兼容方案最佳实现落地。
  • 【ArcGIS_Python】使用arcpy脚本将shape数据转换为三维白膜数据
  • 巧用 DeepSeek,让 Excel 数据处理更高效
  • Springboot项目编写测试单元步骤
  • 北大AGI与具身智能评估新范式!Tong测试:基于动态具身物理和社会互动的评估标准
  • 【go语言】protobuf 和 grpc
  • mixin
  • STM32 串口收发数据包
  • 基于springboot+vue的青少年心理健康教育网站的设计与实现
  • Qt跨屏窗口的一个Bug及解决方案
  • FRP通过公网IP实现内网穿透
  • 日期选择控件,时间跨度最大一年。
  • springboot停车场管理系统设计与实现
  • 【高级篇 / IPv6】(7.2) ❀ 04. 在60E上配置ADSL拨号宽带上网(IPv4) ❀ FortiGate 防火墙
  • SQL 秒变三线表 sql导出三线表
  • Android studio ternimal 中gradle 指令失效(gradle环境变量未配置)
  • 表格文字的版面分析,PHP语言实现表格识别功能
  • 力扣hot100-双指针
  • 挑战项目 --- 微服务编程测评系统(在线OJ系统)
  • oracle 基础语法复习记录
  • 信息学奥赛一本通 2101:【23CSPJ普及组】旅游巴士(bus) | 洛谷 P9751 [CSP-J 2023] 旅游巴士
  • 4-ET框架demo的运行