Docker深度解析:Docker Compose

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

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

Compose 模板文件:

入门案例:
  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
相关推荐
llm大模型算法工程师weng3 分钟前
AI + Docker + K8s:云原生时代的运维提效实战
运维·人工智能·云原生
吹牛不交税14 分钟前
vben admin框架vue项目发布部署到linux的docker中
linux·运维·docker
倔强的石头10615 分钟前
Oracle 迁移 TCO 深度拆解:从隐性运维成本陷阱到全栈工具链破局
运维·数据库·oracle·kingbase
最懒的菜鸟24 分钟前
docker pull weaviate 国内拉取失败的问题
运维·docker·容器
凤年徐35 分钟前
Linux 基础指令与权限管理完全指南
linux·运维·chrome
gallonyin37 分钟前
服务器带宽异常排查实战:用 tcpdump + Docker 精准定位“吃带宽”的进程
服务器·docker·tcpdump
信创DevOps先锋43 分钟前
中国DevOps市场格局重塑:本土化与全球化技术的博弈与融合
运维·devops
亚远景aspice43 分钟前
亚远景-ISO 21434:汽车网络安全全生命周期风险管理的技术框架
运维·网络·安全
草青工作室1 小时前
Spring Boot 环境变量配置详解:从 IDEA 到 Docker 部署
spring boot·docker·intellij-idea
EasyGBS1 小时前
国标GB28181视频分析平台EasyGBS视频质量诊断技术让监控从“能用”变“好用”
运维·人工智能·音视频