Docker (五):數據卷和數據卷容器


一、介紹

  數據卷是一個可供一個或多個容器使用的特殊目錄,可以提供很多有用的特性:

    • 數據卷可以在容器之間共享和使用
    • 對數據卷的修改會立刻生效
    • 對數據卷的更新,不會影響鏡像
    • 數據卷默認會一直存在,即使容器被刪除

  數據卷容器其實就是一個普通的容器,只是專門用來提供數據卷,供其他的容器掛載。推薦優先使用數據卷容器。

二、創建和使用數據卷

  1. 數據卷:-v

  在用 docker run 命令的時候,使用 -v 標記來創建一個數據卷並掛載到容器里。在一次 run 中多次使用可以掛載多個數據卷,如:

    docker run -v /data -v /backup -d docker.io/redis:latest

  也可以掛載一個主機目錄作為數據卷,如:

    docker run -v /opt/data:/data -d docker.io/redis:latest

  2. 數據卷容器:--volumes-from

    • 創建數據卷容器:docker run --name sawyer-dbdata --privileged=true -v /opt/data:/data -d centos /bin/bash
    • 使用數據卷容器:docker run --name sawyer-redis --privileged=true -p 6379:6379 --volumes-from sawyer-dbdata -d sawyerlsy/redis:latest 

三、刪除數據卷

  數據卷是被設計用來持久化數據的,它的生命周期獨立於容器,Docker不會在容器被刪除后自動刪除數據卷,並且也不存在垃圾回收這樣的機制來處理沒有任何容器引用的數據卷。如果需要在刪除容器的同時移除數據卷。可以在刪除容器的時候使用 docker rm -v 這個命令。

四、備份、恢復、遷移數據卷

  1. 備份:docker run --volumes-from sawyer-dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /data 該命令表示從數據卷容器sawyer-dbdata中掛載一個數據卷,並且將主機的當前目錄掛載到容器中的/backup中,同時運行打包命令tar,將/data中的數據打包為backup.tar放入/backup中,也就是主機的當前目錄中。
  2. 恢復:如果要將數據恢復到一個新的容器中,時只需要新建一個數據卷容器,並將backup.tar放入掛載目錄中即可,如:

    將backup.tar解壓縮到當前目錄:tar -xvf backup.tar

    docker run --name sawyer-dbdata --privileged=true -v $(pwd):/data -d centos /bin/bash

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM