docker 保存 环境持久化_Docker深入浅出系列 | 容器数据持久化

Docker深入浅出系列 | 容器数据持久化

Docker已经上市很多年,不是什么新鲜事物了,很多企业或者开发同学以前也不多不少有所接触,但是有实操经验的人不多,本系列教程主要偏重实战,尽量讲干货,会根据本人理解去做阐述,具体官方概念可以查阅官方教程,因为本系列教程对前一章节有一定依赖,建议先学习前面章节内容。

教程目的:

了解Docker怎么实现数据存储

了解Docker数据挂载方式是什么

了解Docker数据持久化怎么使用

了解Docker不同数据挂载方式的使用场景

Docker数据存储方式

Docker容器对于宿主机器来说只是一个运行在Linux上的应用,因此它的数据存储还是会依赖宿主机器,Docker是通过挂载宿主机文件系统或内存的方式来实现数据存储的,挂载方式有三种:volume、bind mount和tmpfs。

volumes - 在宿主的文件系统上的docker工作路径下创建一个文件夹(/var/lib/docker/volumes)来存储数据,其他非docker进程是不能修改该路径下的文件,完全由docker来管理

bind mounts - 可以存储在宿主机器任何一个地方,但是会依赖宿主机器的目录结构,不能通过docker CLI 去直接管理,并且非docker进程和docker进程都可以修改该路径下的文件

tmpfs - 无论是在Docker主机上还是在容器内,tmpfs挂载都不会持久保存在磁盘上,它会将信息存储在宿主机器内存里。 容器在其生存期内可以使用它来存储非持久状态或敏感信息。 例如,在内部,swarm services 使用tmpfs挂载将机密挂载到服务的容器中 或者 我们一些不需要持久化数据的开发测试环境,可以使用tmpfs

Volumes初体验

Volumes 是Docker推荐的挂载方式,与把数据存储在容器的可写层相比,使用Volume可以避免增加容器的容量大小,还可以使存储的数据与容器的生命周期独立。

与bind mounts相比,volumes更易于备份或迁移。

您可以使用Docker CLI命令或Docker API管理Volumes。

volumes在Linux和Windows容器上均可工作。

可以在多个容器之间更安全地共享volumes。

volumes驱动程序使您可以将volumes存储在远程主机或云提供程序上,以加密volumes内容或添加其他功能。

Volumes实战

通过默认-v方式

默认情况下,docker会帮我们创建一个随机命名的volume

1.利用我们前面章节下载的image,创建一个容器,命名为mysql01

[root@localhost /]# docker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD=evan123 mysql

4dc868313a330840a833d78a1a88462bcfa4562f61f7da5dcecc9a57290bcb82

2.我们可以看看容器到底有没有自动帮我们创建一个volumes

[root@localhost /]# docker volume ls

DRIVER VOLUME NAME

local cc439258feb4817e1ecfa1f6969613f3e84be9a4499819ec7386f7e443eb6c54

通过上面的输出结果可以看到,docker 默认帮我创建了一个volume,并且随机起了一个看不懂的名字

3.通过docker inspect查看volume详细信息<

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值