mysql容器保存为镜像实战操作(拷贝方法)

如果“容器A”与宿主机进行了目录挂载,并且“容器A”中存在大量的数据库表的话,使用该“容器A”去保存为“镜像A”,并去创建“容器B”时,会产生很长的时间;故我们不采用该方法,我们直接使用时间较短的拷贝方法;

1、我们在使用mysql镜像创建容器时并没有为其进行路径映射,但是宿主机会帮我们自动进行映射;
在这里插入图片描述
2、上图我们可以很直观的看到宿主机路径、容器路径;故我们先将宿主机该映射路径下的数据拷贝到备份文件夹下,指令:cp -rf /var/lib/docker/volumes/1edaa1bd95398dac1eeb0e0b0e7e1fdd507f79cb3971c54ba358bbeebf81c211/_data /mysql 意为:将前一个路径下的数据拷贝到/mysql中(注意:该指令要在宿主机根目录下执行,并且一定要加上-rf)
在这里插入图片描述
3、然后我们这里可以直接使用容器A保存为镜像A,指令:docker commit 容器A 新镜像A:标签号
在这里插入图片描述
4、接下来我们使用新镜像A来创建容器B,并对其进行端口映射,指令:docker run -id --name=容器B -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 新镜像A:标签号
在这里插入图片描述
5、最后把命令行退出到宿主机根目录,执行指令docker cp /mysql/ mysql2:/var/lib/,拷贝完得重启容器,这时我们去windows环境下的mysql客户端进行连接,发现新连接下能看到我们在容器A中创建的的数据库表;
在这里插入图片描述

解释

因为容器A与宿主机进行了目录挂载,故在宿主机中进行了端口映射,而后在windows中进行了数据库表创建,都会同步到容器A中,我们把连接以及库表信息全拷贝到了备份目录/mysql中,之后就可以直接拷贝至新容器下,而避免了在创建容器的时候直接进行目录挂载(前面说了,当数据库表的数据很大时,这个创建过程就特别漫长~~~)

mysql建立镜像数据库- - Tag: mysql建立镜像数据库 环境介绍:主库 192.168.0.205 从库 192.168.0.206 mysql版本:4.1.13a 1、主库创建/etc/my.cnf,修改[mysqld]里边的键值增加 server-id=1 log-bin=binlog_name 2、主库增加用户,用于从库读取主库日志。 grant replication slave,reload,super on *.* to 'slave'@'192.168.0.206' identified by '123456' 3、从库连接主库进行测试。 /opt/mysql/bin/mysql -u slave -p -h 192.168.0.205 4、停从库,修改从库/etc/my.cnf,增加选项: [mysqld] server-id=2 master-host=192.168.0.205 master-user=slave master-password=123456 5、启动从库,可以进行主从库数据同步 /opt/mysql/share/mysql/mysql start /opt/mysql/bin/mysql -u root -p mysql>load data from master; 说明:这一步不这么做也可以,用数据库倒入或者直接目录考过来也行。 6、进行测试: 主库创建表, mysql>create database sampdb; mysql>create table new (name char(20),phone char(20)); mysql>insert into new ('lhj','60549391'); 打开从库,察看: /opt/mysql/bin/mysql -u root -p mysql>show database; mysql sampdb test mysql>use sampdb; mysql>show tables; new 说明主从数据库创建成功。 7、主从数据库相关命令: slave stop; slave start ; 开始停止从数据库。 show slave status\G; 显示从库正读取哪一个主数据库二进制日志 purge master logs to 'binlog.000004';C此命令非常小心,删除主数据库没用的二进制日志文件。如果误删除,那么从库就没有办法自动更新了。 change master; 从服务器上修改参数使用。 如果数据库表是myisam类型,并且权限够 grant replication slave,reload,super on *.* to 'slave_user'@'host' identified by 'slave_pass' 也可以用load data from master命令,建立从数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值