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

Docker Compose --- 管理多容器应用

用于定义和运行多容器 Docker 应用程序。通过 Compose,用户可以使用 YAML 文件来配置应用程序的服务、网络和卷等资源

简化多容器的管理和部署过程

以下compose.yaml示例展示如何部署两个服务WordPress 和 MySQL的环境

version: '3.8'  # 指定 Docker Compose 文件的版本

services:  # 定义服务
  mysql:  # MySQL 服务配置
    container_name: mysql_db  # 容器的名称
    image: mysql:8.0  # 使用的 Docker 镜像及其版本
    ports:  # 映射端口
      - "3306:3306"  # 将主机的 3306 端口映射到容器的 3306 端口
    environment:  # 设置环境变量
      MYSQL_ROOT_PASSWORD: 123456  # MySQL 根用户的密码
      MYSQL_DATABASE: wordpress  # 创建的默认数据库名称
    volumes:  # 数据卷配置
      - mysql-data:/var/lib/mysql  # 将 MySQL 数据存储在名为 mysql-data 的卷中
      - ./myconf:/etc/mysql/conf.d  # 将本地配置文件目录挂载到容器中
    restart: always  # 容器崩溃时自动重启
    networks:  # 指定网络
      - blog_network  # 使用名为 blog_network 的网络

  wordpress:  # WordPress 服务配置
    image: wordpress  # 使用的 Docker 镜像(WordPress)
    ports:  # 映射端口
      - "8080:80"  # 将主机的 8080 端口映射到容器的 80(HTTP)端口
    environment:  # 设置环境变量
      WORDPRESS_DB_HOST: mysql_db  # MySQL 数据库主机名(与 MySQL 服务名称相同)
      WORDPRESS_DB_USER: root  # 用于连接数据库的用户名
      WORDPRESS_DB_PASSWORD: 123456  # 用于连接数据库的用户密码
      WORDPRESS_DB_NAME: wordpress  # WordPress 使用的数据库名称
    volumes:  # 数据卷配置
      - wordpress_data:/var/www/html  # 将 WordPress 数据存储在名为 wordpress_data 的卷中
    restart: always  # 容器崩溃时自动重启
    networks:  # 指定网络
      - blog_network  # 使用名为 blog_network 的网络
    depends_on:  # 定义依赖关系
      - mysql  # 确保 MySQL 服务在 WordPress 启动之前运行

volumes:  # 定义数据卷
  mysql-data:  # MySQL 数据存储卷
  wordpress_data:  # WordPress 数据存储卷

networks:  # 定义网络
  blog_network:  # 自定义网络,用于连接服务之间的通信

参数描述:

  • version:指定 Docker Compose 文件使用的版本,确保兼容性。
  • services:定义应用中的各个服务。
  • container_name:自定义容器名称,便于管理和识别。
  • image:指定要使用的 Docker 镜像及其版本。
  • ports:映射主机和容器之间的端口,使外部可以访问服务。
  • environment:设置环境变量,供容器内应用使用。
  • volumes:定义数据卷,用于持久化数据存储和配置文件。
  • restart:设置容器重启策略,以提高应用稳定性。
  • networks:定义服务之间的网络,使它们能够相互通信。
  • depends_on:指定服务启动顺序,确保依赖服务先启动。

命令

准备好 docker-compose.yaml 文件后,就可以通过以下命令轻松启动、停止和管理应用:

启动应用

默认情况会去启动compose.yaml

docker  compose  up

如果要指定yaml名称和启动多个可以用 -f

docker compose -d -f compose.yaml -f sqlcom.yaml up

停止应用

默认都是compose.yaml

docker compose  stop

停止并清除所有服务

docker compose down

重启服务

docker compose restart

 

  • -d:在后台运行容器,不阻塞终端。
  • -f <filename>:指定要使用的 Docker Compose 文件,可以多个文件一起使用,以便覆盖或扩展配置。
  • up:启动和创建服务,必要时更新已有容器。
  • stop:停止正在运行的服务,但不删除容器,可以随时重启。
  • down:停止并删除服务及其相关资源,适合清理环境。
  • restart:重启当前运行的服务,快速应用更改。

 

附录和参考资料

  • Docker 官方文档
  • Docker Compose 官方文档

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

相关文章:

  • 摄像机实时接入分析平台LiteAIServer视频智能分析软件视频诊断中的抖动检测功能
  • vivado-vitis-2024.1 ps_hello_world 实验
  • 快速生成高质量提示词,Image to Prompt 更高效
  • 配电柜弧光保护装置的应用与功能
  • 论文检索与写作1
  • 【书生.浦语实战营】——入门岛
  • centos7配置keepalive+lvs
  • X2JS: XML与JSON的完美转换工具
  • 基础IO -- 标准错误输出stderr
  • defer和async的区别
  • C#进阶1
  • vue3 ref和reactive踩坑
  • 实现Vue3/Nuxt3 预览excel文件
  • git revert‌和git reset,慎用git revert‌
  • 高阶数据结构--图(graph)
  • 微服务架构设计的初次尝试——基于以太坊智能合约 + NestJS 微服务的游戏社区与任务市场系统:架构设计
  • Android 刘海屏适配指南
  • Python酷库之旅-第三方库Pandas(182)
  • Mybatis-plus解决兼容oracle批量插入
  • centos7之LVS-NAT模式传统部署和docker部署
  • golang中的测试用例
  • 数据分析——大量数据进行分析
  • Spring Boot 3 + Spring Security + Knife4j 无法访问 Swagger 文档的问题及解决方案
  • 如何抓住鸿蒙生态崛起的机遇,解决开发挑战,创造更好的应用体验
  • Linux笔记--基础入门
  • aws 部署测试环境服务+ip域名绑定