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

MySQL Dockerfile 示例

 

目录

关于 init.sql 文件

构建和运行 MySQL 容器


# 使用 MySQL 8.0 作为基础镜像
FROM mysql:8.0

# 设置 MySQL 的环境变量
ENV MYSQL_ROOT_PASSWORD=78910
ENV MYSQL_DATABASE=mydb
ENV MYSQL_USER=myuser
ENV MYSQL_PASSWORD=123456

# 复制自定义的初始化 SQL 文件到容器中
# 注意:确保 init.sql 文件位于 Dockerfile 所在目录
COPY init.sql /docker-entrypoint-initdb.d/

# 暴露 MySQL 的默认端口
EXPOSE 3306

# 可选:设置工作目录(如果需要)
# WORKDIR /var/lib/mysql

关于 init.sql 文件

示例中,init.sql 文件被复制到 /docker-entrypoint-initdb.d/ 目录。MySQL 容器会自动执行该目录下的所有 SQL 文件。以下是一个简单的 init.sql 示例,用于初始化数据库和用户权限:

-- init.sql
-- 创建一个测试表
CREATE TABLE mydb.test_table (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);

-- 插入一些测试数据
INSERT INTO mydb.test_table (name) VALUES ('Kimi'), ('Docker');

构建和运行 MySQL 容器

构建镜像
将上述 Dockerfile 和 init.sql 文件保存在同一目录下,然后运行以下命令构建镜像:

docker build -t my-mysql-image .

运行容器
构建完成后,运行以下命令启动 MySQL 容器:

docker run --name my-mysql-container -d -p 3306:3306 my-mysql-image

-d 表示后台运行容器。

-p 3306:3306 将容器的 3306 端口映射到宿主机的 3306 端口。

验证容器运行
可以通过以下命令连接到 MySQL 容器,验证是否正常启动:

docker exec -it my-mysql-container mysql -uroot -p

输入密码 78910 后,即可进入 MySQL 命令行。


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

相关文章:

  • Linux:线程概念、理解、控制
  • 自动化UI测试 | 什么是测试驱动开发(TDD)和行为驱动开发(BDD)?有何区别?
  • DockerDesktop更改默认的磁盘镜像地存储位置
  • React常用库
  • 【NLP251】命名实体实战(基于Transformer分类)
  • MySQL 知识点总结
  • 使用 Playwright 和沙箱模式实现安全的浏览器自动化
  • ⚡️《静电刺客的猎杀手册:芯片世界里的“千伏惊魂“》⚡️
  • 前端面试技巧与实践
  • 深度学习框架探秘|PyTorch:AI 开发的灵动画笔
  • 微信小程序之mobx-miniprogram状态管理
  • mysql中general_log日志详解
  • 数据结构——哈希表使用
  • linux中rpm是什么意思?
  • 【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))
  • c++中如何区分左值和右值?
  • 面试经典150题——分治
  • 产品经理学习——AI产品
  • 青少年编程与数学 02-009 Django 5 Web 编程 10课题、类视图
  • 鸿蒙Next开发-普通函数和箭头函数 this指向的区别以及对UI刷新的影响