docker的容器数据卷

  • 实现容器中的数据持久化,主机与容器直接数据共享

  • 一言以蔽之,文件夹映射,共享文件夹

  • docker容器产生的数据,如果不用commit生成新的镜像,那么可能会丢失

  • 特点:

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

    • docker run -it -v /宿主机绝对路径目录:/容器内目录 镜像名
      • 实际上就是将宿主和容器的文件夹进行映射
    • docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
      • 容器只读,不可写,read only
  • 容器关闭后,重新打开,相同的映射方法,数据依然在

    • 因为数据是放到宿主机上的,那肯定在啊。。还用想么
  • dockerFile添加

    • javaEE hello.java ----> hello.class

    • Docker images -----> dockerFile

    • dockerFile是镜像的描述文件

    • 先编写dockerFile

    • vim dockerFile

    • FROM centos
      VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"] //上面两个是宿主机挂载的文件夹
      CMD echo "finished,----------success"
      CMD /bin/bash
      
    • build 生成镜像,将dockerFile文件build成新的镜像

      • docker build -f /xxxx/dockerFile -t /命名空间/镜像名
    • 对应的主机目录在哪:

      • docker会给默认的宿主机地址
      • 用docker inspect可以看到
      • 新版的docker在mounts里面
  • 数据卷容器:已经有一个容器挂载了数据卷,而其他的容器通过挂载之前的这个容器实现数据共享,那之前的容器叫数据卷容器

    • 插排上 插 插排,将套娃进行到底
    • 命令为: docker run -it --name dc02 --volumes-from dc01 镜像名
    • 即在运行容器时,就指定挂载哪个容器
    • 它们其实都绑定的宿主,像个总线一样

猜你喜欢

转载自blog.csdn.net/qq_34687559/article/details/120601917