Dockerfile構建mysql鏡像,並初始化數據庫數據

參考: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等文件來調試。

相關文章
相關標籤/搜索