dockerfile构建mysql_Dockerfile构建mysql镜像,并初始化数据库数据

本文档详细介绍了如何在CentOS7环境中利用Dockerfile创建一个MySQL镜像,并通过setup.sh脚本初始化数据库数据。Dockerfile中包含了从mysql:5.7基础镜像构建的过程,设置允许空密码,以及复制schema.sql和privileges.sql用于数据导入和权限设置。setup.sh脚本负责启动MySQL服务,导入数据,设置用户密码。最后,提供了如何构建镜像及运行容器的方法,以便于检查建表情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)在CentOS7环境中进行操作, 创建文件夹mymy,并新建文件Dockerfile,setup.sh,schema.sql,privileges.sql

mkdir mymy

cd mymy

touch Dockerfile

touch setup.sh

touch schema.sql

touch privileges.sql

Dockerfile:

FROM mysql:5.7

ENV MYSQL_ALLOW_EMPTY_PASSWORD yes

COPY setup.sh /mysql/setup.sh

COPY schema.sql /mysql/schema.sql

COPY privileges.sql /mysql/privileges.sql

CMD ["sh", "/mysql/setup.sh"]

setup.sh:

#!/bin/bash

echo 'checking mysql status.'

service mysql status

echo '1.start mysql....'

service mysql start

sleep 3

service mysql status

echo '2.start importing data....'

mysql < /mysql/schema.sql

echo '3.end importing data....'

sleep 3

service mysql status

echo '4.start changing password....'

mysql < /mysql/privileges.sql

echo '5.end changing password....'

sleep 3

service mysql status

echo 'mysql is ready'

tail -f /dev/null

schema.sql: (注意引号的使用,数据库名,表名,字段名的引号使用 ` , 字符串值使用 ' )

-- 创建数据库

create database `docker_mysql`;

use docker_mysql;

-- 建表

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

`id` bigint(20) NOT NULL,

`created_at` bigint(40) DEFAULT NULL,

`last_modified` bigint(40) DEFAULT NULL,

`email` varchar(255) DEFAULT NULL,

`first_name` varchar(255) DEFAULT NULL,

`last_name` varchar(255) DEFAULT NULL,

`username` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- 插入数据

INSERT INTO `user` (`id`, `created_at`, `last_modified`, `email`, `first_name`, `last_name`, `username`)

VALUES

(0,1490257904,1490257904,'john.doe@example.com','John','Doe','user');

privileges.sql:

use mysql;

select host, user from user;

create user docker identified by '123456';

grant all on docker_mysql.* to docker@'%' identified by '123456' with grant option;

flush privileges;

构建镜像:

docker build -t zkong/mymy .

dbb67c1f530059f501b9b8336d5958a1.png

运行镜像:

docker run -d -p 13306:3306 zkong/mymy

运行成功后,可进入container内部查看建表情况:

3e6258639103713a9621fcd8c0a4435b.png

container内,文件情况:

9536122bcadbecb828698ba248e87d59.png

container内是不能使用vi等工具,如需要可安装:

apt-get update

apt-get install vim

安装之后可以直接使用vi修改setup.sh等文件来调试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值