1.初始化默认数据
我们经常会在mysql容器启动时,需要初始化一些数据库、数据表或者其他默认数据。其实mysql早已支持我们这种需求,具体方案如下:
# 其实主要的做法就是重新build mysql镜像
# 新建Dockerfile
FROM mysql:5.7
COPY sql/*.sql /docker-entrypoint-initdb.d/
# gantt.sql文件
create database `gantt` default character set utf8 collate utf8_general_ci;
# build镜像(tag需要更新为自己需要镜像tag)
docker build -t tag .
mysql数据持久化
数据持久化主要是将mysql中的数据内容映射到宿主机,从而保证数据的可以永久保存(down - v 后数据依然在),如果需要完全迁移数据,则需要将映射在宿主机的文件一并迁移。docker-compose.yml文件配置如下:
version: '2.3'
services:
schedule-mysql:
image: hub.infervision.com/dev/viewer-collection:schedule-mysql-5.7
restart: always
ports:
- 3311:3306
volumes:
- ./mysql_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_USER=gantt
- MYSQL_PASSWORD=gantt