Docker資料卷和資料卷容器

2021-08-03 06:30:03 字數 1290 閱讀 1534

在容器中管理資料主要有兩種方式:

 資料卷(data volumes)

 資料卷容器(data volume containers)

資料卷

資料卷是乙個可提供乙個或多個容器使用的特殊目錄,它繞過ufs(unix檔案系統),可以提供很多有用的特性:

 資料卷可以在容器之間共享和使用

 對資料卷的修改會立馬生效

 對資料卷的更新,不會影響映象

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

資料卷的使用,類似於linux下對目錄或檔案進行mount。

1、 建立乙個資料卷

使用 –v 可以掛載乙個本地的目錄到容器中作為資料卷:

-d : 後台執行容器,並返回容器id

–name=testvolume :表示給該掛載了資料卷的容器起個別名

/home/flower/myvolume:/home/myvolume :冒號前後的目錄分別表示本地目錄和容器中目錄,如果容器中不存在該目錄,則會自動建立。

使用docker exec命令進入容器,可以看到本地目錄成功掛載到容器中。

此時,無論在容器中的該目錄下,還是在宿主機的該目錄下進行操作,都會立馬生效。

docker掛載資料卷的預設許可權是讀寫,我們也可以通過 :ro 指定為唯讀。

當將許可權指定為唯讀後,則只能在本地主機上對該目錄進行操作,而在容器中的該目錄下則無法進行建立檔案或者目錄的操作。

2、 掛載乙個本地檔案作為資料卷

使用 –v 也可以從主機掛載單個檔案到容器中作為資料卷:

資料卷容器

如果有一些持續更新的資料需要在容器之間共享,則需要建立資料卷容器。

資料卷容器,其實就是乙個正常的容器,專門用來提供資料卷供其它容器掛載的。

首先,建立乙個資料卷容器dbdata:

然後,建立db1和db2兩個容器,並使用 -volumes-from 掛載dbdata容器中的資料卷:

這樣三個容器任何乙個容器在該目錄下寫入,其他容器都能看到。

刪除資料卷和資料卷容器

如果刪除了掛載的容器(包括dbdata、db1、db2),資料卷並不會被自動刪除。如果要刪除乙個資料卷,必須在刪除最後乙個還掛載著它的容器時使用 docker rm –v 命令來指定同時刪除關聯的容器。

參考:《docker—從入門到實踐》

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...

Docker (五) 資料卷和資料卷容器

一 介紹 資料卷是乙個可供乙個或多個容器使用的特殊目錄,可以提供很多有用的特性 資料卷容器其實就是乙個普通的容器,只是專門用來提供資料卷,供其他的容器掛載。推薦優先使用資料卷容器。二 建立和使用資料卷 1.資料卷 v 在用 docker run 命令的時候,使用 v 標記來建立乙個資料卷並掛載到容器...