使用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

相關文章
相關標籤/搜索