在单个Mariadb容器中使用Docker Compose创建多个数据库

在开发和测试过程中,有时我们希望在单个Mariadb容器中创建多个数据库,而不必编写SQL脚本手动创建。Docker Compose提供了一种简单方便的方式来定义和管理多个容器,我们可以利用它来实现这个需求。

使用Docker Compose创建多个数据库

在Docker Compose文件中,我们可以使用docker-compose.yml定义多个服务,并且每个服务都可以使用一个预先配置的SQL初始化脚本来创建数据库。以下是一个示例的docker-compose.yml文件:

version: '3.7'

services:
  mariadb:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: database1
      # 更多数据库可以通过环境变量继续添加
      # MYSQL_DATABASE_2: database2
      # MYSQL_DATABASE_3: database3
    volumes:
      - mariadb_data:/var/lib/mysql
    ports:
      - "3306:3306"

# 定义数据卷以持久化数据库数据
volumes:
  mariadb_data:

解释

  • image: 指定使用的Mariadb镜像。
  • restart: 设置容器遇到错误时自动重启。
  • environment: 定义环境变量,其中MYSQL_ROOT_PASSWORD指定root用户的密码,MYSQL_DATABASE用于指定要创建的第一个数据库。可以通过类似MYSQL_DATABASE_2的方式继续添加更多的数据库。
  • volumes: 将容器内的/var/lib/mysql目录挂载到宿主机上,以持久化数据库数据。
  • ports: 将容器的3306端口映射到宿主机的3306端口,以便外部可以访问数据库。

示例

假设我们想要创建三个数据库database1database2database3,我们可以按照以下步骤在单个Mariadb容器中创建这些数据库:

  1. 创建一个名为docker-compose.yml的文件,并将上述示例内容复制粘贴到文件中。
  2. 运行以下命令启动容器:
docker-compose up -d

结论

通过以上步骤,我们成功地在单个Mariadb容器中使用Docker Compose创建了多个数据库。这样可以简化开发和测试过程中的数据库管理,提高工作效率。

声明:本站所有文章,如无特殊说明或标注,均为本站(王大神)原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
指数词

在Docker容器内部如何ping通宿主机IP?

2024-3-17 17:47:39

指数词

一键部署HTTPS的官方Docker镜像

2024-3-17 17:49:18

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索