docker compose 配置 mysql 容器启动时创建数据库
要在 Docker Compose 中配置 MySQL 容器,在容器启动时创建数据库,你可以按照以下步骤进行操作:
-
在你的 Docker Compose 文件中,定义一个 MySQL 服务。确保你已经设置了适当的环境变量,如
MYSQL_ROOT_PASSWORD
和MYSQL_DATABASE
。下面是一个示例的 Docker Compose 配置:
version: '3' services: db: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: your_root_password MYSQL_DATABASE: your_database_name volumes: - ./data:/var/lib/mysql
在上述配置中,
MYSQL_ROOT_PASSWORD
是 MySQL 的 root 用户密码,MYSQL_DATABASE
是要创建的数据库名称。volumes
部分用于将 MySQL 数据持久化到本地目录。 -
保存并关闭 Docker Compose 文件。
-
使用以下命令启动 Docker Compose:
docker-compose up -d
这将会启动 MySQL 容器,并在启动过程中自动创建指定的数据库。
创建多个数据库
如果想在 Docker Compose 中创建多个数据库,你可以使用以下方法:
-
创建一个名为
init.sql
的 SQL 脚本文件,并在其中编写创建数据库的语句。例如,假设你要创建两个数据库database1
和database2
,你可以将以下内容保存到init.sql
文件中:CREATE DATABASE IF NOT EXISTS database1; CREATE DATABASE IF NOT EXISTS database2;
-
在你的 Docker Compose 文件中,将
init.sql
文件挂载到 MySQL 容器的/docker-entrypoint-initdb.d/
目录下,这样 MySQL 容器在启动时将自动执行该脚本。下面是一个示例的 Docker Compose 配置:
version: '3' services: db: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: your_root_password volumes: - ./data:/var/lib/mysql - ./init.sql:/docker-entrypoint-initdb.d/init.sql
在上述配置中,我们将
init.sql
文件挂载为/docker-entrypoint-initdb.d/init.sql
,这是 MySQL 容器的初始化脚本目录。保存并关闭 Docker Compose 文件。
使用以下命令启动 Docker Compose:
docker-compose up -d
这将会启动 MySQL 容器,并在启动过程中自动执行
init.sql
文件中的 SQL 语句来创建数据库。
现在,当你启动 Docker Compose 中的 MySQL 容器时,它将自动执行 SQL 脚本并创建指定的数据库。你可以根据需要在 init.sql
文件中添加其他 SQL 语句,如创建表、插入数据等。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南