資料卷和資料卷容器

2021-09-24 04:06:04 字數 2074 閱讀 3561

資料卷

就是將宿主機的某個目錄,對映到容器中,作為資料儲存的目錄,我們就可以在宿主機對資料進行儲存

資料卷可以在容器之間共享和重用,本地與容器間傳遞資料更高效;

對資料卷的修改會立馬有效,容器內部與本地目錄均可;

對資料卷的更新,不會影響映象,對資料與應用進行了解耦操作;

捲會一直存在,直到沒有容器使用。

掛載資料卷目錄

命令:docker run -itd --name [容器名字] -v [宿主機目錄]:[容器目錄] [映象名稱] [命令(可選)]

注意:docker掛載資料卷的預設讀寫許可權(rw),使用者可以通過ro設定為唯讀

格式:[宿主機檔案]:[容器檔案]:ro

資料卷容器

若需要在多個容器之間共享持續更新的資料,可使用資料卷容器。資料卷容器也是容器,它專門提供資料卷以供其他容器掛載。

資料卷容器(data volume containers):使用特定容器維護資料卷

建立資料卷容器

docker create -v [容器資料卷目錄] --name [容器名字] [映象名稱] [命令(可選)]

其他容器在啟動時候掛載資料卷容器

docker run --volumes-from [容器id] -itd --name [容器名字] [映象名字] [命令(可選)]

例如:docker run --volumes-from c1bd2f811521 -itd --name n2-nginx nginx /bin/bash

注意:資料卷容器自身並不需要啟動,但是啟動的時候依然可以進行資料卷容器的工作。

資料備份方案

建立乙個掛載資料卷容器的容器

掛載宿主機本地目錄作為備份資料卷

將資料卷容器的內容備份到宿主機本地目錄掛載的資料卷中

完成備份造作後銷毀剛建立的容器

docker run --rm --volumes-from [資料卷容器id/name] -v [宿主機目錄]:[容器目錄][映象名稱] [備份命令]

例如:docker run --rm --volumes-from c1bd2f811521 -v /home/itcast/dockertest/:/backup nginx tar zcpf /backup/x.tar.gz /ndata

注意:tarp引數:使用檔案的原來屬性(屬性不會依據使用者而變),忽略現有的使用者許可權遮蔽位(umask)。 加了-p之後,tar進行解壓後,生成的檔案的許可權,是直接取自tar包裡面檔案的許可權(不會再使用該使用者的umask值進行運算)。若不加-p引數,將還要再減去umask的值(位運算的減),但是如果使用root使用者進行操作,加不加-p引數效果是一樣的。

資料還原

建立乙個新的資料卷容器(或刪除原資料卷容器的內容)

建立乙個新容器,掛載資料卷容器,同時掛載本地的備份目錄作為資料卷

將要恢復的資料解壓到容器中

完成還原操作後銷毀剛建立的容器

docker run --rm -itd --volumes-from [資料要到恢復的容器] -v [宿主機備份目錄]:[容器備份目錄][映象名稱] [解壓命令]

例如:docker run --rm --volumes-from c1bd2f811521 -v /home/itcast/dockertest/:/backup nginx tar xpf /backup/x.tar.gz -c /ndata

注意:tarc引數:解壓時,如果使用掛載資料卷目錄的方式,一定要在解壓的時候使用引數-c指定掛載的資料卷容器,不然的話容器資料是無法恢復的。因為容器中預設的ndata目錄不是資料卷,即使解壓後,也看不到檔案。

Docker資料卷和資料卷容器

在容器中管理資料主要有兩種方式 資料卷 data volumes 資料卷容器 data volume containers 資料卷 資料卷是乙個可提供乙個或多個容器使用的特殊目錄,它繞過ufs unix檔案系統 可以提供很多有用的特性 資料卷可以在容器之間共享和使用 對資料卷的修改會立馬生效 對資料...

docker 資料卷和資料卷容器

docker 資料管理 在生產環境中使用 docker 往往需要對資料進行持久化,或者需要在多個容器之間進行 資料共享,這必然涉及容器的資料管理操作 容器中的管理資料主要有兩種方式 資料卷 data volumes 容器內資料直接對映到本地主機環境 資料卷容器 data volume contain...

Docker資料卷和資料卷容器

宿主機目錄 var www 掛載容器中的 data1 佔宿主機記憶體 docker run v var www data1 name web1 it centos 7 bin bash root 601b1b8a4835 ls data1 root 601b1b8a4835 cd data1 roo...