Docker入門 容器資料卷(五)

2021-10-06 16:17:45 字數 1676 閱讀 1373

容器之間可以使用乙個資料共享技術!docker 容器中產生的資料,同步到本地!本地的資料同樣也可以同步到docker容器內!容器之間也可以資料共享。這就是卷技術! 目錄的掛載,將我們容器的目錄,掛載到linux上面。

類似資料庫的資料和應用是分開的,那麼這個時候不會因為誤刪容器,或者資料庫遷移而導致資料丟失。

#命令測試如下

docker run -it -v 主機目錄:容器目錄 nginx /bin/bash

eg:docker run -it -v /home/test:/home nginx /bin/bash

#啟動起來時候我們可以通過docker inspect 容器id

使用-v引數,掛載容器外和宿主機的目錄,兩者是同步的,所以以後修改容器內的配置檔案就 不用進去容器了,get 方便。

–匿名掛載

–具名掛載

docker volume --help		#幫助命令

docker volume ls

#展示所有volume

#匿名掛載--

-v 容器內路徑 #直接跟上容器內路徑

docker run -d -p --name nginx01 -v /etc/nginx/ nginx

所有的docker容器內的卷,沒有指定目錄的情況下都是在/var/lib/docker/volumes/***

上面是匿名掛載,那麼接下來看下具名掛載

我們通過具名掛載可以方便找到乙個卷,大多數情況下在使用的具名掛載

#如何確定是具名掛載還是匿名掛載,還是指定路徑掛載!

-v 卷名:容器內路徑 #具名掛載

-v /宿主機路徑:容器內路徑 #具名掛載-指定路徑掛載!

#拓展#通過 -v 容器內路徑,ro rw改變讀寫許可權

docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx:ro nginx

docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx:rw nginx

ro readonly

#唯讀,一旦設定了這個命令後,容器i就有限定了,,只能在宿主機進行操作,在容器內部無法操作

rw readwrite #可讀可寫

容器之間掛載目錄共享 使用命令 --volumes-from
多個mysql實現資料共享,先啟動第乙個mysql容器

docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e mysql_root_password=123456 --name mysql01 mysql:5.7

然後再啟動乙個mysql容器,使用--volumes-from

docker run -d -p 3311:3306 -e mysql_root_password=123456 --name mysql02 --volumes-from mysql01 mysql:5.7

這個時候可以實現兩個容器資料同步

容器之間配置資訊的傳遞,資料卷容器的生命週期一直持續到最後乙個容器刪除為止

但是一旦資料持久化到本地,這個時候,本地的資料是不會因為容器的刪除而刪除的。

(五) Docker 容器資料卷

1 什麼是資料卷 docker容器產生的資料,如果不通過docker commit生成新的映象,使得資料做為映象的一部分儲存下來,那麼當容器刪除後,資料自然也就沒有了。為了能儲存資料在docker中我們使用卷。卷就是目錄或檔案,存在於乙個或多個容器中,由docker掛載到容器,但不屬於聯合檔案系統,...

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

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

Docker 資料卷 資料卷容器

一,概念解析 1,資料卷 資料卷就是在宿主中可以在容器之間進行共享和重用的一系列和檔案和資料夾,通過docker run v命令可以將資料卷掛載到對應的容器目錄空間,進行檔案讀取,容器卷特性如下 資料卷可以在容器之間共享和重用,容器間傳遞資料將變得高效方便 對資料卷內資料的修改會立馬生效,無論是容器...