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

做网站 图文教程网站优化推广教程

做网站 图文教程,网站优化推广教程,广州做网站那家好,做网站到八方资源网怎么样目录 一、Docker Compose 简介 二、服务配置详解 1. Redis 配置 2. MySQL 配置 3. RabbitMQ 配置 三、数据持久化与时间同步 四、部署与管理 五、总结 目录挂载与卷映射的区别 现代软件开发中,微服务架构因其灵活性和可扩展性而备受青睐。为了支持微服务的…

目录

一、Docker Compose 简介

二、服务配置详解

1. Redis 配置

2. MySQL 配置

3. RabbitMQ 配置

三、数据持久化与时间同步

四、部署与管理

五、总结

目录挂载与卷映射的区别


现代软件开发中,微服务架构因其灵活性和可扩展性而备受青睐。为了支持微服务的高效运行,我们需要构建一个强大且可靠的基础设施。本文将介绍如何使用 Docker Compose 部署 Redis、MySQL 和 RabbitMQ,这些组件是许多微服务应用的核心依赖。通过 Docker Compose,我们可以轻松地管理这些服务的启动、停止和重启策略,同时确保它们的高可用性和数据持久化。

一、Docker Compose 简介

Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具。通过一个 YAML 文件,我们可以配置多个容器的启动参数、环境变量、网络和卷挂载等信息。这使得部署和管理复杂的多容器应用变得简单而高效。

在本文中,我们将使用 Docker Compose 部署 Redis、MySQL 和 RabbitMQ,为微服务应用提供存储、消息队列和数据库支持。

二、服务配置详解

1. Redis 配置

Redis 是一个高性能的键值存储数据库,广泛用于缓存、消息队列和会话存储等场景。在我们的 Docker Compose 文件中,Redis 的配置如下:

redis:image: bitnami/redis:latestrestart: alwayscontainer_name: redisenvironment:- REDIS_PASSWORD=123456ports:- "6379:6379"volumes:- ./docker/data/redis:/bitnami/redis/data- ./docker/config/redis:/opt/bitnami/redis/mounted-etc- /etc/localtime:/etc/localtime:ro
  • image: 使用 Bitnami 提供的 Redis 镜像,它是一个经过优化且易于使用的 Redis 镜像。

  • restart: 设置为 always,确保 Redis 容器在退出后会自动重启。

  • environment: 设置 Redis 的密码为 123456,以增强安全性。

  • ports: 将容器的 6379 端口映射到宿主机的 6379 端口,方便外部访问。

  • volumes: 挂载本地目录到容器内部,确保 Redis 的数据和配置文件持久化。同时,挂载 /etc/localtime 文件以同步宿主机的时间。

2. MySQL 配置

MySQL 是一个广泛使用的开源关系型数据库,适用于存储结构化数据。在我们的配置中,MySQL 的设置如下:

mysql:image: mysql:8.0.31restart: alwayscontainer_name: mysqlenvironment:- MYSQL_ROOT_PASSWORD=123456- MYSQL_DATABASE=appstoreports:- "3306:3306"- "33060:33060"volumes:- ./docker/config/mysql:/etc/mysql/conf.d- ./docker/data/mysql:/var/lib/mysql- /etc/localtime:/etc/localtime:ro
  • image: 使用 MySQL 官方镜像的 8.0.31 版本。

  • restart: 设置为 always,确保 MySQL 容器在退出后自动重启。

  • environment: 设置 MySQL 的 root 用户密码为 123456,并创建一个名为 appstore 的数据库。

  • ports: 将容器的 3306 端口映射到宿主机的 3306 端口,用于 MySQL 的主服务;将 33060 端口映射到宿主机的 33060 端口,用于 MySQL 的管理接口。

  • volumes: 挂载本地目录到容器内部,确保 MySQL 的配置文件和数据持久化。同时,挂载 /etc/localtime 文件以同步宿主机的时间。

3. RabbitMQ 配置

RabbitMQ 是一个功能强大的消息队列系统,支持多种消息协议,广泛用于微服务之间的异步通信。在我们的配置中,RabbitMQ 的设置如下:

rabbit:image: rabbitmq:3-managementrestart: alwayscontainer_name: rabbitmqhostname: rabbitports:- "5672:5672"- "15672:15672"environment:- RABBITMQ_DEFAULT_USER=rabbit- RABBITMQ_DEFAULT_PASS=rabbit- RABBITMQ_DEFAULT_VHOST=devvolumes:- ./docker/data/rabbitmq:/var/lib/rabbitmq- ./docker/config/rabbitmq:/etc/rabbitmq- /etc/localtime:/etc/localtime:rocommand: >bash -c "rabbitmq-plugins enable rabbitmq_management &&rabbitmq-server"
  • image: 使用 RabbitMQ 官方镜像的 3-management 版本,它包含了管理插件。

  • restart: 设置为 always,确保 RabbitMQ 容器在退出后自动重启。

  • hostname: 设置容器的主机名为 rabbit,便于在容器网络中识别。

  • ports: 将容器的 5672 端口映射到宿主机的 5672 端口,用于消息队列通信;将 15672 端口映射到宿主机的 15672 端口,用于管理 RabbitMQ 的 Web 界面。

  • environment: 设置 RabbitMQ 的默认用户名为 rabbit,密码为 rabbit,并创建一个名为 dev 的虚拟主机。

  • volumes: 挂载本地目录到容器内部,确保 RabbitMQ 的数据和配置文件持久化。同时,挂载 /etc/localtime 文件以同步宿主机的时间。

  • command: 启用 RabbitMQ 的管理插件,并启动 RabbitMQ 服务。

三、数据持久化与时间同步

在上述配置中,我们通过挂载本地目录到容器的特定路径,实现了数据的持久化。这意味着即使容器被删除或重新启动,数据也不会丢失。此外,通过挂载 /etc/localtime 文件,我们确保了容器内部的时间与宿主机保持一致,这对于日志记录和时间敏感的应用非常重要。

四、部署与管理

要部署上述服务,只需将上述配置保存为 docker-compose.yml 文件,然后在终端中运行以下命令:

docker-compose up -d

这将启动 Redis、MySQL 和 RabbitMQ 容器,并将它们置于后台运行。如果需要停止服务,可以运行:

docker-compose down

五、总结

通过 Docker Compose,我们可以轻松地部署和管理 Redis、MySQL 和 RabbitMQ 这些关键的微服务基础设施组件。这种配置方式不仅提高了开发和部署的效率,还确保了服务的高可用性和数据的持久化。无论是在开发环境还是生产环境中,这种方案都能为微服务应用提供坚实的基础支持。

目录挂载与卷映射的区别

特性目录挂载(Bind Mounts)卷映射(Volumes)
数据存储位置宿主机的文件系统Docker 管理的默认位置或指定路径
依赖宿主机路径是,路径必须存在否,由 Docker 管理
数据持久化是,但依赖宿主机路径是,独立于容器生命周期
实时同步是,宿主机和容器实时同步不直接同步,但可以通过操作卷实现
管理方式依赖宿主机文件系统由 Docker 管理,更灵活
适用场景开发、实时同步、访问宿主机文件数据持久化、多容器共享、迁移

是否可以相互替换?

目录挂载和卷映射不能完全相互替换,因为它们的设计目标和适用场景不同。选择哪种方式取决于具体需求:

  • 如果你需要实时同步宿主机和容器之间的文件,并且宿主机上有现成的目录或文件,那么目录挂载是更好的选择。

  • 如果你需要数据持久化、独立于宿主机文件系统,并且可能需要在多个容器之间共享数据,那么卷映射是更好的选择。

示例对比

假设你有一个 MySQL 数据库容器,需要持久化数据:

  • 使用目录挂载

    volumes:- ./mysql_data:/var/lib/mysql

    这种方式将宿主机的 ./mysql_data 目录挂载到容器的 /var/lib/mysql,数据存储在宿主机的文件系统中。

  • 使用卷映射

    volumes:- mysql_data:/var/lib/mysql

    这种方式创建了一个名为 mysql_data 的卷,数据存储在 Docker 管理的路径中,与宿主机文件系统解耦。

如果宿主机的 ./mysql_data 目录被删除,目录挂载的方式会导致数据丢失;而使用卷映射时,数据仍然安全。

目录挂载和卷映射各有优缺点,不能完全相互替换。目录挂载更适合实时同步和访问宿主机文件,而卷映射更适合数据持久化和多容器共享

 

http://www.hengruixuexiao.com/news/29156.html

相关文章:

  • 网站维护难做网站批量查询工具
  • 温州微网站制作哪里有网站外链有多重要
  • 政府网站建设的创新机制百度上免费创建网站
  • 欧美 手机网站模板下载 迅雷下载 迅雷下载 迅雷下载地址app推广联盟平台
  • 如何建造网站视频教程百度网站排名seo
  • 做广告公司网站建设网站快速排名推荐
  • 上海嘉定建设局网站免费信息发布平台网站
  • 广州品牌形象设计seo关键字优化价格
  • 仪陇建设局网站上海网站seo快速排名
  • 做网站作业昆明网络营销
  • 天津网络网站公司济南今日头条新闻
  • 天津做企业网站小吃培训机构排名前十
  • 做网站怎样套用模板seo分析案例
  • web网站开发视频seo广州工作好吗
  • 英文网站备案网站开发公司排行榜
  • 临沂网站临沂网站制作semi是什么意思
  • 萧山网站建设如何推广seo
  • wordpress 获取文章评论佛山抖音seo
  • 微网站建设及微信推广方案网络营销成功的案例
  • Wordpress优化图片插件seo外包多少钱
  • 网站源码传到服务器上后怎么做百度网盘电脑版官网
  • 站嗨免费建站seo技术培训班
  • 昆明著名网站建设免费建设网站平台
  • 如何做英文版网站爱站网站长百度查询权重
  • 网站备案域名更改公司seo课程培训班费用
  • 网店怎么开需要什么条件抖音seo优化排名
  • 网站如何在百度做排名天津关键词优化网排名
  • 南宁网站建设公司哪家专业怎么写软文推广
  • 海洋网络网站建设网站入口百度
  • 如何在国外建设网站今日热搜第一名