docker容器資料儲存之 volume 詳解

2021-10-18 03:02:06 字數 2157 閱讀 5081

預設容器的資料的讀寫發生在容器的儲存層,當容器被刪除時其上的資料將會丟失。所以我們應該盡量保證容器儲存層不發生寫操作,為了實現資料的持久化儲存我們需要選擇一種方案來儲存資料,當前有以下幾種方式:

無論你選擇哪種mount型別,從container內部看沒有區別,它們都是目錄或者檔案。資料都是寄存在宿主機上,只不過具體位置有所區別,如下圖:

使用資料卷的步驟一般分為兩步:

建立乙個資料卷

使用-v--mount引數將資料卷掛載容器指定目錄中,這樣所有該容器針對該指定目錄的寫操作都會儲存在宿主機上的volume中。

1、映象run的使用 加上引數配置

2、 commit提交副本映象,重新啟動新映象加上引數配置(針對容器已經有資料的情況下)

與繫結安裝不同,您可以在任何容器範圍之外建立和管理卷。

docker volume create my-vol #建立資料卷

docker volume ls #檢視有哪些卷

docker volume inspect my-vol #檢視卷詳情

docker rm -f web #強制刪除執行中的容器

docker volume rm my-vol #刪除卷

docker volume prune #清理無用的卷

docker ps -s #可以檢視容器的大小是沒有增加的

建立乙個卷(volume):

$ docker volume create my-vol
檢視volumes:

$ docker volume ls

local my-vol

$ docker volume inspect my-vol

[ ,

"mountpoint": "/var/lib/docker/volumes/my-vol/_data",

"name": "my-vol",

"options": {},

"scope": "local"}]

我們可以看到建立的volume my-vol儲存在目錄/var/lib/docker/volumes/下,以後所有針對該volume的寫資料都會儲存中目錄/var/lib/docker/volumes/my-vol/_data下。

刪除乙個volume:

$ docker volume rm my-vol
或者刪除所有未使用的volumes:

docker volume prune
如果您使用尚不存在的卷啟動容器,則docker將為您建立該卷。

-v或--volume

由三個字段組成,以冒號(:)分隔。這些字段必須以正確的順序排列,並且每個欄位的含義不是立即顯而易見的。

$ docker run -d -v nginx-vol:/usr/share/nginx/html,readonly nginx:latest
檢視容器是否掛載儲存呢?

docker inspect eb5e31fef691
使用docker inspect 容器id驗證建立卷並安裝正確。查詢mounts部分

"mounts": [

],

請參考這篇文章:docker容器資料持久化問題及解決方案

Docker之容器資料卷

資料?如果資料都在容器中,那麼我們容器刪除,資料就會丟失!需求 資料可以持久化 mysql,容器刪除了,刪庫跑路!需求 mysql資料可以儲存在本地!容器之間可以有乙個資料共享的技術!docker容器中產生的資料,同步到本地!這就是卷技術!目錄的掛載,將我們容器內的目錄,掛載到linux上面!目的 ...

docker之資料儲存

docker映象是乙個唯讀的檔案系統,容器是映象的執行環境,即在映象基礎上再加一層可讀寫的層,因此所有容器中的資料寫入時均寫到容器中,會隨著容器的銷毀而消失。為確保容器可以儲存資料,docker引入資料卷volume來處理此情況。volume就是目錄或者檔案,它可以繞過預設的聯合檔案系統,而以正常的...

Docker 入門之docker容器建立

使用docker容器的大多數人都是因為想要隔離不同執行環境的差異,使得自己的應用能更好的移植和部署。那麼我們來看看掌握docker需要掌握哪些方面。1,搭建docker環境 2,編譯映象並將其執行成容器 3,將自己的應用壓縮在多個容器中 4,在乙個集群上部署自己的應用 5,通過增加後台資料庫來儲存服...