一、创建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');
二、拉取mysql镜像
docker pull mysql:5.7
三、在init.sql同级下创建一个Dockerfile,作为Dockerfile文件,现在要增加一些文件复制的代码
FROM mysql:5.7 WORKDIR /docker-entrypoint-initdb.d ADD init.sql
首先书写from MySQL:5.7,设置基准镜像,之后,用workdir来设置我们工作目录。把它定位到以后,紧接着使用ADD命令,将当前目录的init.sql文件复制到容器中的目录中,把这三行写上,那么在MySQL5.7容器启动时,就会自动加载配置文件并执行它。
四、进行镜像的构建
docker build -t itlaoqi-sampledb F:\IT加油站\Docker与K8S容器化实践\源代码\sampledb
作为init.sql这个文件被自动地复制到了目录中。下边关键的地方来了,我们要构建容器, 利用docker run -P进行端口映射。我们都知道MySQL默认的端口号是3306,那么我们要进行映射的时候不妨这么写,3310是外部的端口,而容器内部3306写上。
五、运行mysql镜像
docker run -p 3310:3306 -e MYSQL_ROOT_PASSWORD=root itlaoqi-sampledb
同时还有一个关键的设置-e。,其实非常简单,它就是环境常量的意思。 在这儿我们书写MYSQL_ROOT_PASSWORD。这个环境常量是由MYSQL5.7镜像所定义的,在这里用于,设置root的初始化密码用户名root,密码root。最后要增加docker的名称。itlaoqi-sampledb,把这个写好,回车。请看屏幕上就会有一系列的输出,我们要做的只需要等待。好的,当你看到了五点7.26 3306的时候,就代表我们MySQL容器启动成功了,此时可以ctrl+C退出。
六、查看
netstat -ano|grep 3310