docker启动mysql并映射数据目录(含备份脚本)
作者:潇洒哥Kahn
本文主要介绍了docker启动mysql并映射数据目录(含备份脚本),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
下面是实现 Docker MySQL 目录映射的步骤,我们将通过一个表格展示:
步骤 | 操作 | 命令/代码 | 说明 |
---|---|---|---|
1 | 创建数据目录 | mkdir /path/to/mysql/data | 在宿主机上创建一个用于存储 MySQL 数据的目录 |
2 | 启动 MySQL 容器 | docker run --name mysql -v /path/to/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql:tag | 启动一个 MySQL 容器,并将宿主机的数据目录映射到容器内的 /var/lib/mysql 目录 |
3 | 进入 MySQL 容器 | docker exec -it mysql bash | 进入 MySQL 容器的命令行界面 |
4 | 连接 MySQL 数据库 | mysql -u root -p | 使用 root 用户连接到 MySQL 数据库 |
接下来我们将逐步介绍每一步需要做什么,以及相应的命令和代码。
一、在docker里跑mysql 5.7
docker run -p 13306:3306 --name mysql --restart=always --privileged=true \ -v /data/docker/mysql/log:/var/log/mysql \ -v /data/docker/mysql/data:/var/lib/mysql \ -v /data/docker/mysql/conf:/etc/mysql/conf.d \ -v /etc/localtime:/etc/localtime:ro \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7
注释:
-- name mysql:指定docker容器名叫mysql,当然你可以改成其他的
--restart=always:总是跟随docker启动
--privileged=true:获取宿主机root权限
-v dir_1:dir_2:dir_1指的是宿主机的目录,可以不存在,docker会自动创建,dir_2位容器里面的目录,必须存在,否则容器无法启动
-e MYSQL_ROOT_PASSWORD=123456:指定mysql环境变量,root用户的密码为123456
二、登录容器后再登录容器里的mysql
[root@localhost mysql_data_backup]# docker exec -it mysql /bin/bash bash-4.2# mysql -uroot -p123456
三、在容器数据库里创建数据库和表
CREATE DATABASE IF NOT EXISTS kahnDB DEFAULT CHARSET utf8 COLLATE utf8_general_ci; use kahnDB; create table student(num int(10) not null unique primary key,name varchar(20) not null,gender varchar(20) not null,birthday datetime,address varchar(50)); insert into student (num,name,gender,birthday,address) VALUES (1,'serena','woman','2000-12-31','shanghai'); insert into student (num,name,gender,birthday,address) VALUES (2,'kahn','nan','2000-01-29','huaian');
四、备份容器中的mysql数据库
#!/usr/bin/env bash docker_name="mysql" backup_dir="/data/docker/mysql/mysql_data_backup" db_name="kahnDB" db_password="123456" xtime=`date +%Y-%m-%d_%H:%M:%S_%5N` docker exec -i ${docker_name} mysqldump -uroot -p${db_password} ${db_name} > ${backup_dir}/${db_name}_${xtime}.sql
到此这篇关于docker启动mysql并映射数据目录(含备份脚本)的文章就介绍到这了,更多相关docker mysql映射目录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!