构建自己的 mysql docker image

Dockerfile

FROM mysql:5.7.21

ENV \
MYSQL_ROOT_PASSWORD=huangjb \
MYSQL_DATABASE=mgrass \
MYSQL_USER=mgrass \
MYSQL_PASSWORD=mgrass

COPY fordocker.sql /docker-entrypoint-initdb.d/fordocker.sql

EXPOSE 3306/tcp

fordocker.sql

CREATE TABLE t_warehourse (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(16) NOT NULL,
remark varchar(64) NOT NULL,
enabled tinyint(1) NOT NULL,
created datetime(6) NOT NULL,
updated datetime(6) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT character set UTF8mb4 collate utf8mb4_bin;

run.sh

docker run --name testmysql -v "$PWD/data":/var/lib/mysql -p 3306:3306 -d mymysql

point:

  • mysql 存储文件在:/var/lib/mysql,一般会持久化 bind。这样即使容器退出了,数据还在。
  • 日志,在 container 里会输出到标准输出。docker logs testmysql, 可查看。