Docker-compose

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: Docker-compose

目录

简介:

官方介绍

批量容器编排

Docker-Compose up 1000个服务,也可以一键启动

Compose重要概念

安装Docker Compose

升级Docker Compose

重启的执行命令


image.gif编辑

简介:

我们之前操作Docker的过程是:DockerFile build run进行手动操作,单个容器,如果假设我们1000个微服务,并行微服务之间还存在依赖关系,这个时候,我们就可以使用Docker Compose来轻易高效的管理容器,定义运行多个容器

官方介绍

定义、运行多个容器

Yamlfile 配置环境

Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,可以使用Yaml文件来配置应用程序的服务。然后,使用一个命令,就可以从配置中创建并启动所有服务。要了解有关Compose的所有特性的更多消息,请参阅特性列表

Compose可以在所有环境中工作生产、阶段、开发、测试,以及CI工作流。使用Compose基本有三个步骤

    1. 使用Dockerfile定义你的应用程序的环境,这样就可以在任何地方复制
    2. 在Docker-compose中定义组成应用程序的服务。这样他们就可以在一个独立的环境中一起运行
    3. 运行Docker-compose up和Compose启动运行整个应用程序

    批量容器编排

    Compose是Docker官方开源项目,需要安装

    Dockerfile让程序在任何地方运行,Web程序。Redis、MySql、Nginx 多个容器

    Compose的Yaml文件如下

    version: '2.0'

    services:

    web:

    build: .

    ports:

    - "5000:5000"

    volumes:

    - .:/code

    - logvolume01:/var/log

    links:

    - redis

    redis:

    image: redis

    volumes:

    logvolume01: {}

    Docker-Compose up 1000个服务,也可以一键启动

    Compose重要概念

      1. 服务Service 容器,应用(Web,Redis,Mysql)
      2. 项目Project,就是一组关联的容器

      常见的Docker Compose脚本

      安装git命令: yum install -y git

      git clone docker-compose: docker-compose集成环境系列

      cd docker-compose/Linux

      举例:

      version: '3'

      services:

      mysql:

      image: registry.cn-hangzhou.aliyuncs.com/zhengqing/mysql:5.7 # 原镜像`mysql:5.7`

      container_name: mysql_3306 # 容器名为'mysql_3306'

      restart: unless-stopped # 指定容器退出后的重启策略为始终重启,但是不考虑在Docker守护进程启动时就已经停止了的容器

      volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录

      - "./mysql5.7/my.cnf:/etc/mysql/my.cnf"

      - "./mysql5.7/data:/var/lib/mysql"

      # - "./mysql5.7/conf.d:/etc/mysql/conf.d"

      - "./mysql5.7/log/mysql/error.log:/var/log/mysql/error.log"

      - "./mysql5.7/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d" # 可执行初始化sql脚本的目录 -- tips:`/var/lib/mysql`目录下无数据的时候才会执行(即第一次启动的时候才会执行)

      environment: # 设置环境变量,相当于docker run命令中的-e

      TZ: Asia/Shanghai

      LANG: en_US.UTF-8

      MYSQL_ROOT_PASSWORD: root # 设置root用户密码

      MYSQL_DATABASE: demo # 初始化的数据库名称

      ports: # 映射端口

      - "3306:3306"

      安装Docker Compose

      官方文档:Overview | Docker Documentation

      下载

        1. 首先需要先安装一下Docker
        2. 运行此命令下载Docker Compose的当前稳定版本$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
        3. 二进制文件添加可执行权限:sudo chmod +x /usr/local/bin/docker-compose

        如果安装失败的话,可以检查一下安装路径是否正确。 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

          1. 测试安装 docker-compose --version

          升级Docker Compose

          如果从Compose1.2或更早版本升级,请在升级Compose后移除现有容器。这是因为从1.3版本之后,Compose使用Docker标签来跟踪容器,并且需要重新创建容器以添加标签。

          如果Compose检查到创建时没有标签的容器,它会拒绝运行,这样您就不会得到两组。如果想继续使用现有容器,可以在使用Compose1.5使用以下命令迁移

          docker-compose migrate-to-labels

          或者,如果不担心保留,可以删除,compose知识创建新的

          docker container rm -f -v myapp_web_l myapp_....

          重启的执行命令

          sudo /usr/local/bin/docker-compose down

          sudo /usr/local/bin/docker-compose up -d

          相关实践学习
          基于Redis实现在线游戏积分排行榜
          本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
          相关文章
          |
          数据可视化 物联网 Swift
          谷歌发布开源LLM Gemma,魔搭社区评测+最佳实践教程来啦!
          Gemma是由Google推出的一系列轻量级、先进的开源模型,他们是基于 Google Gemini 模型的研究和技术而构建。
          |
          数据采集 机器学习/深度学习 Python
          深度学习中的高效数据预处理技巧
          【7月更文第29天】在构建深度学习模型时,数据预处理是至关重要的步骤之一。高质量的数据预处理可以显著提高模型的性能并加速训练过程。本文将探讨几种有效的数据预处理技巧,包括数据清洗、特征归一化和数据增强,并通过实际的Python代码示例进行说明。
          1171 5
          |
          7月前
          |
          缓存 Java 应用服务中间件
          java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
          java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
          1200 5
          |
          11月前
          |
          数据采集 前端开发 测试技术
          Selenium中定位元素的9种方法
          在Selenium中,定位页面元素是自动化测试和网页爬虫的基础。常用的9种元素定位方法包括:ID、Name、Class Name、Tag Name、CSS Selector、XPath、Link Text、Partial Link Text,以及XPath和CSS选择器的组合使用。每种方法各有优劣,建议根据页面的具体情况和元素的属性选择最合适的方法,并使用显式等待确保元素可用。
          1466 5
          |
          11月前
          |
          监控 数据可视化 测试技术
          软件测试中的自动化测试实践指南
          【10月更文挑战第7天】 在软件开发的生命周期中,测试是确保产品质量的重要环节。随着技术的进步和应用的复杂性增加,自动化测试逐渐成为提升测试效率和覆盖范围的关键手段。本文将深入探讨自动化测试的基本概念、实施步骤及其在不同应用场景中的最佳实践。通过对自动化测试框架的选择、脚本开发、执行及维护的详细解析,帮助读者更好地理解和应用自动化测试技术,从而优化测试流程,提高软件质量。
          127 2
          |
          C#
          阿里云域名价格注册、续费及转入费用(com、cn多域名后缀报价)
          阿里云com域名注册价格69元,企业新用户注册com域名优惠价1元;cn域名注册价格29元,新用户注册cn域名8.8元;阿里云com域名续费79元一年,使用优惠口令续费68元一年;阿里云cn域名续费价格39元,使用优惠口令后价格35元一年。
          4918 1
          阿里云域名价格注册、续费及转入费用(com、cn多域名后缀报价)
          |
          应用服务中间件 nginx Docker
          docker-compose
          docker-compose
          193 0
          |
          存储 安全 数据库
          搭建Harbor镜像仓库
          搭建Harbor镜像仓库
          543 2
          |
          JSON 测试技术 API
          Postman Newman 实现 API 自动化测试的快速指南
          Newman 是一款专为 Postman 打造的命令行工具,旨在通过自动运行 Postman 集合和环境,实现 API 测试的自动化。它使得开发者无需打开 Postman 图形界面,即可直接在命令行中执行测试用例。

          热门文章

          最新文章