您的位置:首页 > 教育 > 锐评 > 【日常记录-Docker】构建自定义MySQL镜像

【日常记录-Docker】构建自定义MySQL镜像

2025/5/3 15:33:24 来源:https://blog.csdn.net/zhaoyaxuan001/article/details/140875415  浏览:    关键词:【日常记录-Docker】构建自定义MySQL镜像
Author:赵志乾
Date:2024-08-02
Declaration:All Right Reserved!!!

1. 概述

        自定义MySQL镜像,使其在启动时执行指定的SQL脚本;

2. 文件说明

        总共3个文件:my.cnf、db.sql、Dockerfile,且三个文件放在同一个目录。

        mysql的配置文件,文件名为my.cnf,内容如下:

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
default_authentication_plugin = mysql_native_password
default-time-zone='+08:00'
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
expire_logs_days=1
skip-character-set-client-handshake
skip-name-resolve
secure_file_priv=null
skip-log-bin

        自定义sql文件,文件名为db.sql,内容如下:

#创建数据库
create database if not exists mydb;
#切换数据库
use mydb;
#创建数据表
create table if not exists `input_data` (`id`          bigint(20)    unsigned   not null auto_increment,`task_id`     varchar(50)              not null    default '0'   comment '任务id',`iteration`   int(10)                  not null    default 0     comment '迭代次数',`value`       longblob                 not null                  comment '数据内容',`create_time` datetime                 not null    default CURRENT_TIMESTAMP,`update_time` datetime                 not null    default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,primary key             (`id`)                   using btree,unique index `uniq_idx` (`task_id`, `iteration`) using btree
)
comment = '输入数据'
collate ='utf8mb4_0900_ai_ci'
engine =InnoDB
auto_increment=1
;

        Dockerfile内容如下:

FROM mysql:8.0.26COPY my.cnf /etc/mysql/my.cnf
COPY db.sql /docker-entrypoint-initdb.d/db.sql
RUN chmod a+x /docker-entrypoint-initdb.d/db.sql

3. 镜像构建与容器运行

# 构建镜像
docker build --no-cache -f ./Dockerfile -t custommysql:8.0.26 .
# 运行容器
docker run -p 3308:3306 --name custommysql -e MYSQL_ROOT_PASSWORD=123456 -v /project/mysql:/var/lib/mysql -d --restart=always custommysql:8.0.26

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com