docker容器和数据库数据分离

我用的是mysql数据库

因为我在docker容器里已经安装好一个mysql服务器,我需要的是/var/lib/mysql下的数据。

1.运行容器,并挂载本地一个空目录到容器中的非/var/lib/mysql目录下,docker容器中在被挂载目录下修改会同步到本地目录中(举例说你挂载/home/xxx/目录到docker容器中的/root/tmp/目录下,当你进入docker容器并修改/root/tmp目录下的内容时会被同步本地/home/xxx/目录下,相当于就是在修改本地的/home/xxx/目录!)

2.进入容器并将容器中的/var/lib/mysql/目录下的内容复制到/root/tmp/目录下(命令:cp -R /var/lib/mysql/  /root/tmp/),并递归修改目标文件(/root/tmp/mysql/)的属主/组为mysql!,这点很重要,不然以后挂载到容器中会导致mysql服务起不来;

3.退出容器,然后去查看/home/xxx/会发现多出来一个mysql目录中,查看mysql下的文件属性,你会看到owner会变成一个反正我不知道的用户,我的是lxd,不知道是不是固定的。保持这个样子不要手贱修改它;

4.之后就可以docker run的时候挂载本地的/home/xxx/mysql/到容器中的/var/lib/mysql/下了,docker容器是暂存的,但是只要修改了数据库中的东西(即修改了/var/lib/mysql/下的东西)就会同步到本地的/home/xxx/mysql/目录下,成功实现分离。这样也更安全。

添加1个docker容器运行的小TIPS,进入容器后,如果exit会直接停掉容器,里面的服务也会停掉,可以使用CTRL+P然后CTRL+Q来挂起容器保证服务正常。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值