行业知识
通过Dockerfile build mysql镜像 初始化mysql数据库
2026-10-20 07:20:57
来源:互联网转载
做什么
#1.docker下mysql镜像容器初始化
()#2.将初始化sql文件通过init.sql文件内的SOURCE命令执行
#3.容器启动起来,mysql内就有相应的初始化数据了
()先看目录结构
├── Dockerfile├── README.md├── init.sql└── xxx ├── dir1 │ ├── sys_user.sql │ ├── sys_org.sql
1.build镜像的Dockerfile
# 选择基础镜像FROM mysql:latest# 联系人MAINTAINER mhl meihongliang@xxxx.com# 工作/初始目录WORKDIR /docker-entrypoint-initdb.d# 使用root账户创建目录USER rootRUN mkdir -p ./xxx/dir1RUN mkdir -p ./xxx/dir1RUN mkdir -p ./xxx/dir1# 设置数据库密码(根据需要修改)ENV MYSQL_ROOT_PASSWORD=root# 将当前目录的内容COPY至指定目录COPY ./init.sql /docker-entrypoint-initdb.d/COPY ./sobey /docker-entrypoint-initdb.d/xxx# 执行mysqld命令CMD ["mysqld"]
init.sql
-- 建库 使用库 建表 插数据CREATE DATABASE IF NOT EXISTS yourDatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 使用并用source命令执行你的初始化mysql-- 可以执行多次source命令USE yourDatabase;SOURCE ./xxx/dir1/sys_user.sql;SOURCE ./xxx/dir1/sys_org.sql;
sys_user.sql
CREATE TABLE `sys_user` ( `ID` int NOT NULL AUTO_INCREMENT, `loginName` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, `userCode` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, `nickName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, PRIMARY KEY (`ID`) USING BTREE,) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='用户信息表';-- 你具体的sql语句了-- INSERT INTO `sys_user` (field1,field2) VALUES ('value1','value2'); README.md
# 在init目录下执行下述命令将此mysql镜像启动为mysql容器# build docker下的mysql镜像docker build -t yourCustomerImageName .# 启动mysql容器docker run --name mysql_3309 -e MYSQL_ROOT_PASSWORD=root -p 3309:3306 -d yourCustomerImageName
最后启动命令
docker run --name mysql_3309 -e MYSQL_ROOT_PASSWORD=root -p 3309:3306 -d yourCustomerImageName
一些库/表/密码需要自行控制
上一篇:异地怎么开定位服务器?
下一篇:手机怎么重启dhcp服务器?