docker中容器數(shù)據(jù)卷volume介紹
docker 容器數(shù)據(jù)卷volume
如果數(shù)據(jù)都在容器中,那么我們刪除容器的時候數(shù)據(jù)就會丟失,所以我們希望數(shù)據(jù)可以持久化。
例如MySQL容器,我們希望數(shù)據(jù)可以存儲在本地,當(dāng)MySQL容器刪除的時候,數(shù)據(jù)不會丟失。
容器之間可以有一個數(shù)據(jù)共享的技術(shù),Docker容器中產(chǎn)生的數(shù)據(jù),同步到本地,這就是卷技術(shù)。也就是數(shù)據(jù)掛載技術(shù),將我們?nèi)萜鲀?nèi)的目錄,掛載到Linux上面。
掛載之后,我們在容器內(nèi)做的操作回同步到Linux宿主機上。
使用數(shù)據(jù)卷
方式一:直接使用命令掛載 -v
docker run -it -v 主機目錄:容器目錄 #測試 [root@sumarua home]# docker run -it -v /home/ceshi:/home centos /bin/bash # 啟動起來之后我們可以通過docker inspect容器id]來查看
示例
MySQL的數(shù)據(jù)持久化
[root@sumarua home]# docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=666666 --name mysql mysql5.7
具名掛載和匿名掛載
#匿名掛載 -v 容器內(nèi)路徑 docker run -d -p --name nginx01 -v /etc/nginx nginx #查看所有的volume的情況 docker volume ls
# 具名掛載 # 通過 -v 卷名:容器內(nèi)路徑 docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx nginx #查看 docker volume ls
我們可以查看一下卷的掛載的具體位置
docker volume inspect [卷名]
所有的docker 容器內(nèi)的卷,沒有指定目錄的情況下都在/var/lib/docker/volumes/xxxx/_data
通過具名掛載我們可以方便找到卷。
如何確定是具名掛載還是匿名掛載,還是指定路徑掛載
-v 容器內(nèi)路徑 #匿名掛載 -v 卷名:容器內(nèi)路徑 #具名掛載 -v /宿主機路徑:容器內(nèi)路徑 #指定路徑掛載
拓展:
# 通過 -v 容器內(nèi)路徑:ro rw 改變讀寫權(quán)限 ro readonly #只讀 rw readwrite #可讀可寫 #默認(rèn)可讀可寫 #一旦設(shè)置了容器權(quán)限,容器對我們掛載出來的內(nèi)容就有限定了 #ro 這個路徑只能通過宿主機來操作,容器內(nèi)部是無法操作的。
方式二:Dockerfile
Dockerfile 就是用來構(gòu)建docker鏡像的構(gòu)建文件,命令腳本。
通過這個腳本可以生成鏡像,鏡像是一層一層的,腳本是一個一個的命令,每個命令都是一層。
# 創(chuàng)建一個dockerfile文件,名字可以隨機,建議Dockerfile # 文件中的內(nèi)容 指令(大寫)參數(shù) FROM centos VOLUME ["volume01","volume02"] CMD echo "----end----" CMD /bin/bash # 這里的每個命令,就是鏡像的一層
數(shù)據(jù)卷容器
--volumes-from
# 用法 [root@sumarua]#docker run -it --name docker02 --volumes-from docker01 sumarua/centos
實現(xiàn)數(shù)據(jù)同步,容器間數(shù)據(jù)共享
數(shù)據(jù)卷容器刪除文件后不會影響掛載在此容器上的其他容器的數(shù)據(jù)訪問。是一種拷貝的概念,備份拷貝機制。
容器之間配置信息的傳遞,數(shù)據(jù)卷容器的生命周期持續(xù)到?jīng)]有容器使用為止。
但是一旦持久化到本地,本地的數(shù)據(jù)是不會刪除的。
總結(jié)
到此這篇關(guān)于docker中容器數(shù)據(jù)卷volume介紹的文章就介紹到這了,更多相關(guān)docker數(shù)據(jù)卷volume內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker 啟動elasticsearch鏡像,掛載目錄后報錯的解決
- docker-修改容器掛載目錄的3種方法小結(jié)
- docker 查看容器的掛載目錄操作
- Docker容器中數(shù)據(jù)卷volumes的使用
- Docker容器數(shù)據(jù)卷介紹及操作示例
- Docker容器數(shù)據(jù)卷技術(shù)介紹
- Docker數(shù)據(jù)卷掛載命令volume(-v)與mount的使用總結(jié)
- Docker容器數(shù)據(jù)卷的使用教程
- Docker中容器數(shù)據(jù)卷詳解
- docker如何對已經(jīng)啟動的容器添加目錄映射(掛載目錄)
- Docker數(shù)據(jù)卷和掛載目錄的使用
相關(guān)文章
Windows10安裝WSL2 Ubuntu20.04并設(shè)置docker環(huán)境的方法
這篇文章主要介紹了Windows10安裝WSL2 Ubuntu20.04并設(shè)置docker環(huán)境的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05docker-compose部署eureka服務(wù)端、客戶端的案例代碼
這篇文章主要介紹了docker-compose部署eureka服務(wù)端、客戶端,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03Docker為網(wǎng)絡(luò)bridge模式指定容器ip的方法
Docker在創(chuàng)建容器時有四種網(wǎng)絡(luò)模式,bridge為默認(rèn)不需要用--net去指定,其他三種模式需要在創(chuàng)建容器時使用--net去指定。那Docker為網(wǎng)絡(luò)bridge模式指定容器ip該如何實現(xiàn)呢?下面通過通過這篇文章一起看看吧,文中給出了詳細(xì)的示例代碼,有需要的可以參考借鑒。2016-11-11Docker部署nginx+php環(huán)境的全過程(簡單可用!)
最近在學(xué)docker,順便配置了一下docker中的nginx與php,發(fā)現(xiàn)網(wǎng)上的關(guān)于docker中配置nginx與php的資料很少,而且有的也很舊,沒有太多的參考性,下面這篇文章主要給大家介紹了關(guān)于Docker部署nginx+php環(huán)境的相關(guān)資料,需要的朋友可以參考下2023-02-02使用docker環(huán)境變量動態(tài)配置nginx的問題小結(jié)
這篇文章主要介紹了使用docker環(huán)境變量動態(tài)配置nginx,整個方案,采用的是通過docker run -e xxxx=xxx先往容器注入環(huán)境變量,然后進(jìn)一步通過envsubst指令將環(huán)境變量寫入到具體的文件當(dāng)中,實現(xiàn)動態(tài)配置文件內(nèi)容,需要的朋友可以參考下2022-06-06Docker容器與主機間的文件傳輸方法(復(fù)制/上傳/下載)
這篇文章主要介紹了Docker容器與主機間的文件傳輸方法(復(fù)制/上傳/下載),需要的朋友可以參考下2018-02-02詳解Docker中VLAN網(wǎng)絡(luò)模式的配置
在Docker應(yīng)用到生產(chǎn)環(huán)境的時候包括了原生Bridge NAT模式、LinuxBridge VLAN模式以及利用第三方的網(wǎng)絡(luò)方案這三種,這篇文章給大家詳細(xì)介紹了Docker中VLAN網(wǎng)絡(luò)模式的配置,有需要的朋友們下面來一起看看吧。2016-10-10docker部署zookeeper集群方式(單主機、多主機)
這篇文章主要介紹了docker部署zookeeper集群方式(單主機、多主機),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04