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
相关推荐
沫璃染墨几秒前
《从零入门Linux系统篇(五十一):线程篇·四——pthread线程库详解:从线程创建到终止与分离》
linux·运维·服务器·开发语言·c++·系统架构·线程
墨家前任巨子11 分钟前
定时关机脚本
运维
ESDWAN13 分钟前
企业组网后网络频繁掉线,常见故障排查指南
运维·网络·架构
guo_wen_qiang29 分钟前
云服务器mysql分库分表环境搭建(2库4表)
数据库·mysql·docker
程序员-Benothing35 分钟前
Linux系统时间管理:date、timedatectl、NTP、Chrony配置
linux·运维·服务器
坏脾气的小十七39 分钟前
docker基本知识
docker·容器·eureka
小白的码BUG之路1 小时前
Docker -- 基本命令
java·docker·eureka
迪康Defender1 小时前
终端安全实践:浅谈端点安全管理系统内置终端防火墙能力
运维·服务器·网络·经验分享·安全·php·终端安全管理
AI备忘录1 小时前
(二十二)华为华三锐捷迈普思科 802.1X 端口认证配置命令(网络准入五厂商对照)
运维·服务器·开发语言·网络·安全·华为
优化Henry1 小时前
LTE站点以太网光模块告警处理实践
运维·网络·笔记·学习·信息与通信