前言
工作中经常使用MySQL for Docker进行测试,在此记录下简单步骤。文件内容根据个人实际情况进行修改。
1.Dockerfile
1.1.文件介绍
文件介绍:
- Dockerfile:创建docker所使用的剧本。
- init.sql:创建MySQL后运行的SQL。
- my.cnf:MySQL的参数文件。
- pantao_demon.sql:测试数据。
- run.sh:创建docker镜像、docker容器的脚本。
- steup.sh:运行*.sql文件的脚本。
1.2.文件内容
1 FROM mysql:8 2 RUN mkdir -p /mysql 3 COPY my.cnf /etc/mysql 4 COPY init.sql /mysql 5 COPY pantao_demo.sql /mysql 6 COPY steup.sh /docker-entrypoint-initdb.d 7 RUN chmod a+x /docker-entrypoint-initdb.d/steup.sh
1 CREATE DATABASE IF NOT EXISTS `db_pantao`; 2 CREATE USER ‘userm‘@‘localhost‘ IDENTIFIED with "mysql_native_password" BY ‘123456‘; 3 GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘WITH GRANT OPTION; 4 FLUSH PRIVILEGES; 5 GRANT all ON db_pantao.* TO ‘userm‘@‘localhost‘; 6 GRANT all ON db_pantao.* TO ‘root‘@‘%‘; 7 8 use db_pantao; 9 drop table if exists `user`;
1 [mysqld] 2 pid-file = /var/run/mysqld/mysqld.pid 3 socket = /var/run/mysqld/mysqld.sock 4 datadir = /var/lib/mysql 5 secure-file-priv= NULL 6 default_authentication_plugin = mysql_native_password
1 #!/bin/bash 2 echo "start build image ..." 3 docker build -t mysql:v1.0 . 4 echo "build success .." 5 sleep 3 6 echo "start run image ..." 7 docker run --name test -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:v1.0 8 echo " success .."
1 #!/bin/bash 2 mysql -uroot -p$MYSQL_ROOT_PASSWORD <<EOF 3 source /mysql/init.sql; 4 source /mysql/pantao_demo.sql;
1.3.创建Docker
[root]# sh run.sh