0
点赞
收藏
分享

微信扫一扫

#yyds干活盘点#13.Docker容器数据卷

Greatiga 2022-02-20 阅读 82

13.Docker容器数据卷

结合实际项目,我们会发现,我们项目中有些数据是需要记录的,比如:日志文件、用户操作的数据等;如果我们把数据放在docker容器中,那么我们只要删除容器,数据就会丢死,例如:我们使用docker容器安装了mysql数据,mysql的数据如果存放在容器中,我们删除容器就会直接把mysql数据库删掉,这个是非常危险⚠️的,因此,我们需要使用docker容器数据卷 技术来把数据存储在本地服务器上。

13.1. 什么是容器数据卷

  • 卷的本质是文件或者目录,存在一个或者多个容器中,由docker挂载到容器,但不属于联合文件系统。卷的概念不仅解决了数据持久化的问题,还解决了容器间共享数据的问题;能够绕过Union File System提供一些用于持续存储或共享数据。
  • 卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

13.2. 为什么使用容器数据卷

  • 数据的持久化,当容器重启后保证数据不丢失,例如:我们可以使用卷将 MySQL 的目录持久化,实现容器重启数据库数据将不会丢失。
  • 如果将数据存储于镜像中,主机上的其他进程不方便访问这些数据。

13.3. 容器数据卷的特点

特点:

  • 1:数据卷可在容器之间共享或重用数据
  • 2:卷中的更改可以直接生效
  • 3:数据卷中的更改不会包含在镜像的更新中
  • 4:数据卷的生命周期一直持续到没有容器使用它为止

13.4. 容器卷的使用

方式一:使用命令进行挂载容器卷

docker run -v 宿主机目录:容器内目录 ....docker run 命令中,使用-v实现宿主机与容器内目录的挂载,这样就类似双向绑定,在容器内操作的数据,会自动同步到宿主机上;在宿主机上操作的数据,也会自动同步到容器内。

以centos为例进行测试:

使用docker run -it -v /home/docker_test:/home centos /bin/bash命令进行启动,其中-v表示将容器中/home目录,挂载到宿主机的/home/docker_test目录下。

使用docker inspect 容器ID 查看容器的挂载信息,如下图:

image202202140044.png

  • 从容器中,同步文件到宿主机
    image202202140018.png

  • 从宿主机中同步文件到容器中
    image202202140024.png
举报

相关推荐

0 条评论