小工具知识网

当前位置: 首页 > 行业知识 > 通过Dockerfile build mysql镜像 初始化mysql数据库

行业知识

通过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服务器?