建议:使用任何容器参考 dockerhub 官方网站 + 搜索引擎
1.下载 mysql 镜像
a.访问 docker hub 搜索 mysql
b.确定 版本 5.x (行业流行版本) ---> 8.x(最新版本,引擎更加快)
2.下载
docker pull mysql:5.6
3.运行 mysql
a.端口映射 3306, 指定 root 用户密码 -e (environment)
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql:5.6
b.启动mysql,开启端口映射(3306) 指定 root 用户密码 -e,后台运行 -d 指定名称 --name,总是运行
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d --name mysql01 --restart=always mysql:5.6
c.数据卷机制,将容器的数据交给宿主机管理,持久化数据 -v /my/own/dataidr:/var/lib/mysql
docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d --name mysql01 --restart=always -v /root/data:/var/lib/mysql mysql:5.6
4.容器数据备份
a.在使用 mysql 容器时数据卷虽然能备份数据
注意:数据卷将数据库底层文件系统进行备份,不利于数据迁移和备份,推荐使用 sql 文件形式备份数据
b.如何在 mysql 中导出 sql 文件来备份数据
利用 mysql 官方命令 mysqldump
备份全部数据 mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD" > /root/all-databases.sql
docker exec mysql|容器id sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql --导出全部数据
docker exec mysql sh -c 'exec mysqldump --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql --导出指定库数据
docker exec mysql sh -c 'exec mysqldump --no-data --databases 库表 -uroot -p"$MYSQL_ROOT_PASSWORD"' > /root/all-databases.sql --导出指定库数据不要数据