參考:https://www.jb51.net/article/115422.htmmysql
1)在CentOS7環境中進行操做, 建立文件夾mymy,並新建文件Dockerfile,setup.sh,schema.sql,privileges.sqlsql
mkdir mymy cd mymy touch Dockerfile touch setup.sh touch schema.sql touch privileges.sql
Dockerfile:docker
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: (注意引號的使用,數據庫名,表名,字段名的引號使用 ` , 字符串值使用 ' )vim
-- 建立數據庫 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:bash
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;
構建鏡像:ide
docker build -t zkong/mymy .
運行鏡像:工具
docker run -d -p 13306:3306 zkong/mymy
運行成功後,可進入container內部查看建表狀況:ui
container內,文件狀況:.net
container內是不能使用vi等工具,如須要可安裝:
apt-get update apt-get install vim
安裝以後能夠直接使用vi修改setup.sh等文件來調試。