官网参考地址:https://hub.docker.com/_/mysql/
一、下载镜像
docker pull mysql:5.7.23
二、运行容器
docker run --name mysql \
-p 3306:3306 \
-v $HOME/_docker/mysql/conf.d:/etc/mysql/conf.d \
-v $HOME/_docker/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7.23 --lower_case_table_names=1
--name mysql
:容器名字为mysql
-p 3306:3306
:将容器的 3306 端口映射到主机的 3306 端口-v $HOME/_docker/mysql/conf.d
:将主机当前目录下的~/_docker/mysql/conf.d
挂载到容器的/etc/mysql/conf.d
,这个是挂载配置目录-v $HOME/_docker/mysql/data
:将主机当前目录下的 data 目录挂载到容器的/var/lib/mysqs
,为数据文件存放路径-e MYSQL_ROOT_PASSWORD=123456
:初始化root用户的密码- --lower_case_table_names=1:设置表名参数名等忽略大小写
三、进入数据库
# 进入 mysql 容器
docker exec -it mysql bash
# 通过 mysql 命令登陆
mysql -uroot -p
#退出 mysql 容器
exit;
exit;
四、其他
查看日志
#查看日志
docker logs mysql
备份docker数据库
#按库备份
docker exec -it mysql【docker容器名称/ID】 mysqldump -uroot -p123456【数据库密码】 test_db【数据库名称】 > /opt/sql_bak/test_db.sql【导出表格路径】
#全部备份
docker exec mysql【docker容器名称/ID】 sh -c ' exec mysqldump --all-databases -uroot -p"123456" ' > /opt/sql_bak/all-databases.sql