使用Docker存储之卷Volume

最近一个项目要使用Data Volume,这里简单记录一下。python

 

数据卷能够用来存储Docker应用的数据,也能够用来在Docker容器间进行数据共享。数据卷呈现给Docker容器的形式就是一个目录,支持多个容器间共享,修改也不会影响镜像。web

特性:docker

  数据卷能够在容器之间共享和重用app

  对数据卷的修改会马上生效webapp

  对数据卷的更新,不会影响镜像code

  数据卷默认会一直存在,即便容器被删除get

 

一、建立一个数据卷io

  docker volume create vol1容器

  查看全部的数据卷数据

  docker volume ls

  在主机里使用以下命令能够查看指定的数据卷信息

  docker volume inspect vol1 

  [
    {
      "Driver": "local",
      "Labels": {},
      "Mountpoint": "/var/lib/docker/volumes/vol1/_data",
      "Name": "vol1",
      "Options": {},
      "Scope": "local"
    }
  ]

二、使用数据卷

(1)使用“-v 容器内目录”方式

  docker run -d -P --name web -v /webapp training/webapp python app.py

       此方式docker 会将本地一个 _data 目录 mount 为容器内的 webapp 目录,可是,在web容器被删除后,宿主机上的 _data 的目录及其中的内容虽然会保留下来,新启动的容器却没法再使用这个目录,也就是说,已有的数据不能自动地被重复使用了。

(2)使用 -v 来挂载一个主机上的目录/文件到容器的目录/文件

  docker run -d -p 23333:80 -v vol1:/store training/webapp python app.py   或者使用  --mount source=vol1, target=/store

  将建立的数据卷 vol1 挂在到容器的 /store 目录,能够理解为目录映射,这样能够让全部的容器共享宿主机数据,从而只须要改变宿主机的数据源就可以影响到全部的容器数据。并且,从新启动容器时,能够再次使用一样的方式将 vol1 的目录挂在到新的容器内, 这样就能够实现数据持久化的目的。

三、删除数据卷

  docker volume rm vol1

相关文章
相关标签/搜索