Docker持久化存儲與數據共享

一.Docker持久化數據的方案

    基於本地文件系統的Volume:能夠在執行docker create或docker run時,經過-v參數將主機的目錄做爲容器的數據卷。這部分功能即是基於本地文件系統的volume管理。
    基於plugin的Volume:支持第三方的存儲方案,好比NAS,awsmysql

1.Volume的類型算法

    受管理的data Volume,由docker後臺自動建立
    綁定掛載的Volume,具體掛載位置能夠由用戶指定sql

二.數據持久化:Data Volume
1.操做流程

    注意:mysql的Dockerfile中由VOLUME ["/var/lib/mysql"]指定了持久化的路徑,此路徑是要被持久化的路徑,默認volume的名稱爲local
    執行docker

sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

啓用一個mysql的image容器,其中-v後跟的mysql表示volume別名,冒號後面的路徑爲volume本地存儲的地址
    查看sudo docker volume ls查看docker的volume,會發現自動生成了一個volume
    經過sudo docker volume inspect volume的NAME值查看對應volume的詳情信息
    若是但願刪除volume,則能夠使用sudo docker volume rm volumeNAMEoop

在這裏向你們推薦一個資料分享羣:916683284,裏面有大數據離線處理、數據實時處理、Hadoop 、Spark、推薦系統算法等內容的資料分享,若是有興趣的朋友能夠加入領取。大數據

2.恢復volume數據spa

    上述操做後會將數據存儲到/var/lib/mysql中,咱們能夠對container中的mysql數據進行增刪改查操做
    經過sudo docker rm mysql1移除container
    此時查看/var/lib/mysql路徑仍然存儲volume
    咱們能夠使用code

sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql

再次開啓一個container,此時的volume會延用以前的數據實現數據的恢復容器

三.數據持久化:Bind Mounting
1.與Data Volume的區別

    Data Volume須要在Dockerfile中定義要建立的volume
    Bind Mounting是在運行時指定本地目錄與容器中目錄的一一對應關係便可後臺

docker run -v /home/aaa:/root/aaa
相關文章
相關標籤/搜索