Docker三剑客之docker-compose

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: docker-compose 是 Docker 生态系统中的一个重要成员,它允许开发人员使用一个简单的配置文件来定义和运行多个 Docker 容器。通过 docker-compose,你可以定义应用程序的各个组件、容器之间的依赖关系以及网络配置,从而实现在一个命令中启动、停止和管理整个应用程序栈。

docker-compose 是 Docker 生态系统中的一个重要成员,它允许开发人员使用一个简单的配置文件来定义和运行多个 Docker 容器。通过 docker-compose,你可以定义应用程序的各个组件、容器之间的依赖关系以及网络配置,从而实现在一个命令中启动、停止和管理整个应用程序栈。

安装 docker-compose

我们之前有篇文章Docker 及 Docker Compose 安装指南介绍过docker和docker-compose 的安装,家人们可以查阅下。我们在这块在介绍下docker-compose的安转。

从github上下载docker-compose二进制文件安装

  • 下载最新版的docker-compose文件

官方文档地址:https://docs.docker.com/compose/install/

下载地址

https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-linux-x86_64

  • 将文件放到 /usr/local/bin/下并重命名
cd /usr/local/bin/
mv docker-compose-linux-x86_64 docker-compose
  • 添加可执行权限
    cd /usr/local/bin/
    sudo chmod +x docker-compose
    
  • 测试安装结果

docker-compose --version

显示 Docker Compose version v2.5.0 则表示已经安装成功了

编写 docker-compose.yml 文件

docker-compose 使用一个名为 docker-compose.yml 的文件来定义应用程序的组件和配置。这个文件使用 YAML 格式,因此可读性良好,并且易于编写和维护。

以下是一个mysql8.0的示例,展示了如何定义一个 mysql数据库服务:

#这个文件使用的 Docker Compose 版本。在这个例子中,使用的是版本3.3。
version: '3.3'
# 定义了一个名为 mysql-db 的服务。这个服务将会创建一个 MySQL 数据库容器。
services:

  mysql-db:
    # 指定容器的名称
    container_name: mysql     
    # 指定镜像和版本
    image: mysql:8.0  
    #将容器内的端口 3306 映射到宿主机的端口 3306。这允许在宿主机上通过端口 3306 访问 MySQL 服务器。
    ports:
      - "3306:3306"
    #配置容器的重启策略为 always,这意味着当容器退出时会自动重启。
    restart: always
    # 容器日志大小配置
    logging:
      driver: 'json-file'
      options:
        max-size: '5g'
    #设置容器内的环境变量 MYSQL_ROOT_PASSWORD,用于配置 MySQL 数据库的 root 用户密码为 xj2022。
    environment:
      # 配置root密码
      MYSQL_ROOT_PASSWORD: xj2022
    #设置数据卷挂载
    volumes:
      # 挂载数据目录
      - "./mysql/data:/var/lib/mysql" 
      # 挂载配置文件目录
      - "./mysql/config:/etc/mysql/conf.d"




常用命令

此处所有命令均在docker-compose.yml 同级目录下使用



  • 启动服务
docker-compose up

后台启动

docker-compose up -d

使用 docker-compose up 命令可以启动你在配置文件中定义的所有服务。加上 -d 参数可以在后台运行它们。

常用参数的详细解释:

  • -d 或 --detach:以“分离模式”运行,即在后台运行容器,不会阻塞终端。
  • --build:在启动之前构建服务的镜像。如果 docker-compose.yml 中有 build 配置,使用这个选项可以强制重新构建镜像。
  • --force-recreate:在启动之前强制重新创建容器。即使容器已经存在,也会停止并重新创建它们。
  • --no-deps:不启动依赖的服务。默认情况下,docker-compose up 会启动所有依赖的服务,但使用此选项可以避免启动它们。
  • --scale SERVICE=NUM:指定要扩展的服务和容器实例数量。




  • 停止服务
docker-compose down

使用 docker-compose down 命令可以停止并移除所有相关的容器、网络和存储卷。



  • 查看日志

    docker-compose logs -f
    

    使用 docker-compose logs 命令可以查看指定服务的日志输出。

常用参数的详细解释:

  • -f 或 --follow:实时跟踪日志输出,类似于 tail -f 命令。当新日志输出产生时,会自动显示在终端上。
  • --tail=<数值>:仅显示指定行数的日志。例如,--tail=100 将仅显示最后的 100 行日志。
  • --timestamps:在日志输出中包含时间戳。
  • --no-color:禁止使用颜色编码显示日志。
  • -t 或 --timestamps:在日志输出中显示时间戳。
  • --since=<时间戳或持续时间>:仅显示从指定时间戳开始的日志,或从指定的持续时间内的日志。例如,--since="2023-08-01" 或 --since="2h30m"。
  • --until=<时间戳或持续时间>:仅显示直到指定时间戳为止的日志,或在指定的持续时间内的日志。例如,--until="2023-08-15" 或 --until="1h"。

总结

docker-compose 是一个强大的工具,能够简化多个 Docker 容器的定义、管理和交互。它使开发人员能够轻松地在本地环境中模拟复杂的应用程序栈,加速开发和测试流程。通过编写清晰的 docker-compose.yml 文件,并结合 docker-compose 提供的命令,你可以以更高效的方式构建和管理容器化的应用程序。无论是小型项目还是大规模系统,docker-compose 都是一个不可或缺的工具,助力你更好地驾驭 Docker 的强大能力。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
NoSQL Unix MongoDB
【docker 】docker-compose 部署mongoDB
【docker 】docker-compose 部署mongoDB
150 1
|
5月前
|
Ubuntu Shell 网络安全
【专栏】在Ubuntu 22.04上安装KubeSphere的指南:确保系统至少有4GB内存和2核CPU,安装Docker和docker-compose
【4月更文挑战第28天】在Ubuntu 22.04上安装KubeSphere的指南:确保系统至少有4GB内存和2核CPU,安装Docker和docker-compose。下载安装脚本`curl -sSL https://kubesphere.io/install.sh | bash`,根据提示选择安装选项,等待完成。安装后,通过访问控制台验证安装效果。解决可能出现的错误、网络问题和性能问题,利用KubeSphere提升容器管理效率。本文为顺利安装和使用提供参考。
236 0
|
NoSQL Redis Docker
【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)下
【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)
221 0
|
存储 NoSQL Redis
【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)上
【Redis从头学-12】Redis主从复制和读写分离的多种部署方式解析(普通方式、Docker搭建方式、Docker-Compose搭建方式)
183 0
|
消息中间件 关系型数据库 MySQL
从零玩转Docker之docker-compose快捷部署中间件2
从零玩转Docker之docker-compose快捷部署中间件
989 0
|
Docker 容器
从零开始安装部署Harbor(Docker+Docker-compose+Harbor)
从零开始安装部署Harbor(Docker+Docker-compose+Harbor)
757 0
|
5月前
|
Kubernetes 应用服务中间件 nginx
docker镜像编译与docker-compose部署与编排
docker镜像编译与docker-compose部署与编排
147 0
|
5月前
|
API PHP 数据库
Docker六脉神剑(四) 使用Docker-Compose进行服务编排搭建lnmp环境
Docker六脉神剑(四) 使用Docker-Compose进行服务编排搭建lnmp环境
57 0
|
5月前
|
NoSQL Shell Redis
Docker镜像编译与Docker-Compose部署与编排
Docker镜像编译与Docker-Compose部署与编排
|
11月前
|
JSON 虚拟化 Docker
Windows10 Docker安装和docker-compose 安装
Windows10 Docker安装和docker-compose 安装
676 0
下一篇
无影云桌面