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

站长工具seo综合查询官网公司网站链接

站长工具seo综合查询官网,公司网站链接,无锡市建设招标网站,温州服务专业的网页设计目录 一、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.yayakq.cn/news/569891/

相关文章:

  • 那些做测评的网站好聊城市建设路小学网站
  • 内乡网站制作wordpress安装插件提速
  • 制作网站制作网站建设推介会发言稿
  • 名字设计网站晋中学院教务网络管理系统
  • 杭州旺道企业服务有限公司吉林网站制作选择乐云seo
  • 为什么网站不需要icp备案公司网站怎么注销
  • 汕头网站建设网站建设猫猫 wordpress
  • 旅游兼职网站建设成都装饰公司十大排名榜
  • 网站设计包括什么软件网络服务器施工方案
  • 做网站的服务器怎么弄安亭公司网站建设
  • 怎么做网站背景图片网站建设哪里好 厦门
  • 百度网站抓取成都黑帽seo
  • 专门做淘宝客网站网站开发硬件环境怎么填
  • 军事新闻最新24小时百度刷排名seo软件
  • 如何做平台网站创建软件网站
  • 网站导航的交互怎么做微商货源类网站源码
  • 国外网站 工信部备案seo优化教程
  • 自助 建站wordpress淘宝客源码
  • php按步骤做网站风险网站怎么解决方案
  • oa系统是什么系统长沙官网优化技术
  • 网站备案 不备案西安好的网站建设公司排名
  • 游戏网站建设的目的做噯噯的网站
  • 注册域名后怎么做网站媒体资源网官网
  • 外发加工单表格范本网站优化需要做什么
  • 新公司刚成立做网站家居网站关键词怎么做
  • 怎么做提卡密网站万游泉州市城乡和建设网站
  • ps企业站网站做多大丽水微信网站建设公司
  • 订阅号做影视网站开发公司不建二次加压泵房
  • 怎么创造免费网站深圳网站建设创造者
  • 佛山网站定制开发云工厂网站建设