- 首先打开你们安装好docker的终端,你得从官网拉取一个mysql镜像(image),我这里选择tag为5.7。
docker pull mysql:5.7
- 拉取完之后我们创建容器并启动该镜像(image),启动时需要注意设置root密码,和服务器字符编码。
先运行命令查看mysql镜像是否存在--查看mysql镜像是否存在 docker images|grep mysql --启动mysql镜像 其中 -p 表示端口映射 主机端口:容器端口 --name 表示容器名称 -e 表示要执行的命令,这里设置root密码。-d 表示后台运行容器,并返回容器ID;后面设置服务器字符编码 docker run -p 3306:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
- 启动容器成功后,我们用客户端测试mysql连接是否正常。密码是:my-secret-pw
- 连接上数据库之后我们创建一个test数据库,并建表插入几条测试数据。
drop database if exists test; create database test; use test; create table t_user ( id int not null, username varchar(32) not null ); insert into t_user values(1,'张三'); insert into t_user values(1,'李四'); select * from t_user;
- 基本上数据库正常使用,我们现在查看正在运行mysql容器,我们进入容器查看下数据库的配置文件目录。
-- 查看mysql容器 docker ps|grep mysql -- 进入到mysql容器 docker exec -it 容器id bash -- 查看mysql涉及的目录 直接用linux命令 whereis mysql -- 一般mysql目录基本上全部出来了,配置文件一般在/etc/mysql/mysql.conf.d,切换到指定目录查看当前目录文件,你会看到mysqld.cnf,我们直接cat这个文件数据目录在哪里。使用如下命令: cd /etc/mysql/mysql.conf.d ls cat mysqld.cnf|grep datadir -- 获得mysql数据目录之后我们可以把这个目录想办法从容器里面复制一份出来到宿主机,我这里的宿主机目录是~/Docker/mysql/5.7/datadir 目录自己记得先在宿主机创建好。 docker cp 容器id:/var/lib/mysql ~/Docker/mysql/5.7/datadir
- 拷贝出数据目录之后我们来开始备份容器。
-- 查看mysql容器 docker ps|grep mysql -- 复制容器id,开始备份容器 docker commit -m "MySQL backup" -a "chengli.zou" 容器id 容器名称:tag名称 -- 查看备份好的容器镜像 docker images|grep tag名称 -- 启动备份好的容器镜像,其中-v表示挂载宿主机目录:容器目录,一定要注意,端口不能重复,之前宿主机是3306现在是3307,避免主机端口冲突。 docker run -d -p 3307:3306 --name mysql_57 -v ~/Docker/mysql/5.7/datadir/mysql:/var/lib/mysql 镜像id
- 备份容器启动成功后我们紧接着用客户端连接,并查看数据库是否时之前插入的测试数据。
- 大功告成,这个deme有啥不理解的,直接下面评论,我会及时回复你们的。
Docker MySQL 容器备份启动
最新推荐文章于 2024-02-18 09:21:05 发布