Docker基础(10)docker安装Mysql和其数据持久化

1.容器化的MySQL的问题

docker容器其实就是在镜像的基础上添加了一个读写层,在容器被删除的时候,容器所保持的数据状态将会丢失,对于MySQL这样的持久数据存储是灾难性的,那么这时候容器的数据持久化就显得很必要了。

2.如何实现持久化

在上一个博客Docker持久化中已经做了详细的介绍,读者可以参考一下。

3.MySQL的数据源文件

Mysql的数据文件一般默认是存储在/var/lib/myql下,其中的文件夹对应每个数据库

#其中的wordpress文件夹就是我名称wordpress对应的数据库
root@990f20ea8714:/var/lib/mysql# cd /var/lib/mysql && ls
auto.cnf         client-key.pem  ibdata1             private_key.pem  sys
ca-key.pem       ib_buffer_pool  ibtmp1              public_key.pem   wordpress
ca.pem           ib_logfile0     mysql               server-cert.pem
client-cert.pem  ib_logfile1     performance_schema  server-key.pem

进入数据库

root@990f20ea8714:/var/lib/mysql# cd wordpress/ && ls
db.opt              wp_options.frm             wp_term_relationships.ibd  wp_usermeta.frm
wp_commentmeta.frm  wp_options.ibd             wp_term_taxonomy.frm       wp_usermeta.ibd
wp_commentmeta.ibd  wp_postmeta.frm            wp_term_taxonomy.ibd       wp_users.frm
wp_comments.frm     wp_postmeta.ibd            wp_termmeta.frm            wp_users.ibd
wp_comments.ibd     wp_posts.frm               wp_termmeta.ibd
wp_links.frm        wp_posts.ibd               wp_terms.frm
wp_links.ibd        wp_term_relationships.frm  wp_terms.ibd
root@990f20ea8714:/var/lib/mysql/wordpress# 

其中的.frm文件为表结构文件。
其中的.ibd文件为表数据文件。

4.通过volume实现数据库数据持久化

docker run --restart=always -d -v /data/mysql/conf:/etc/mysql/mysql.conf.d -v /data/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name naocs_mysql docker.io/mysql:8.0.32-debia

使用--mount src=mysql-vol,dst=/var/lib/mysql \绑定数据卷,如果没有数据卷mysql-vol,docker会自动创建,这样容器就会使用宿主机的mysql-vol数据卷,在容器被删除的时候,只需要指定mysql-vol数据卷就可以让容器继续保持原有的数据状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王乐乐君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值