日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

docker中容器數(shù)據(jù)卷volume介紹_docker

作者:Sumarua ? 更新時(shí)間: 2022-03-20 編程語(yǔ)言

docker 容器數(shù)據(jù)卷volume

如果數(shù)據(jù)都在容器中,那么我們刪除容器的時(shí)候數(shù)據(jù)就會(huì)丟失,所以我們希望數(shù)據(jù)可以持久化。
例如MySQL容器,我們希望數(shù)據(jù)可以存儲(chǔ)在本地,當(dāng)MySQL容器刪除的時(shí)候,數(shù)據(jù)不會(huì)丟失。
容器之間可以有一個(gè)數(shù)據(jù)共享的技術(shù),Docker容器中產(chǎn)生的數(shù)據(jù),同步到本地,這就是卷技術(shù)。也就是數(shù)據(jù)掛載技術(shù),將我們?nèi)萜鲀?nèi)的目錄,掛載到Linux上面。

在這里插入圖片描述
掛載之后,我們?cè)谌萜鲀?nèi)做的操作回同步到Linux宿主機(jī)上。

使用數(shù)據(jù)卷

方式一:直接使用命令掛載 -v

docker run -it -v 主機(jī)目錄:容器目錄
#測(cè)試
[root@sumarua home]# docker run -it -v /home/ceshi:/home centos /bin/bash

# 啟動(dòng)起來(lái)之后我們可以通過(guò)docker inspect容器id]來(lái)查看

在這里插入圖片描述

示例

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

在這里插入圖片描述

# 具名掛載
# 通過(guò) -v 卷名:容器內(nèi)路徑
docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx nginx
#查看
docker volume ls 

在這里插入圖片描述

我們可以查看一下卷的掛載的具體位置

docker volume inspect [卷名]

在這里插入圖片描述

所有的docker 容器內(nèi)的卷,沒(méi)有指定目錄的情況下都在/var/lib/docker/volumes/xxxx/_data
通過(guò)具名掛載我們可以方便找到卷。
如何確定是具名掛載還是匿名掛載,還是指定路徑掛載

-v 容器內(nèi)路徑                 #匿名掛載
-v 卷名:容器內(nèi)路徑            #具名掛載
-v /宿主機(jī)路徑:容器內(nèi)路徑      #指定路徑掛載

拓展:

# 通過(guò) -v 容器內(nèi)路徑:ro rw 改變讀寫權(quán)限
ro  readonly   #只讀
rw  readwrite  #可讀可寫

#默認(rèn)可讀可寫
#一旦設(shè)置了容器權(quán)限,容器對(duì)我們掛載出來(lái)的內(nèi)容就有限定了
#ro 這個(gè)路徑只能通過(guò)宿主機(jī)來(lái)操作,容器內(nèi)部是無(wú)法操作的。

方式二:Dockerfile

Dockerfile 就是用來(lái)構(gòu)建docker鏡像的構(gòu)建文件,命令腳本。
通過(guò)這個(gè)腳本可以生成鏡像,鏡像是一層一層的,腳本是一個(gè)一個(gè)的命令,每個(gè)命令都是一層。

# 創(chuàng)建一個(gè)dockerfile文件,名字可以隨機(jī),建議Dockerfile
# 文件中的內(nèi)容 指令(大寫)參數(shù)
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
# 這里的每個(gè)命令,就是鏡像的一層

數(shù)據(jù)卷容器

--volumes-from

# 用法
[root@sumarua]#docker run -it --name docker02 --volumes-from docker01 sumarua/centos

實(shí)現(xiàn)數(shù)據(jù)同步,容器間數(shù)據(jù)共享

在這里插入圖片描述

數(shù)據(jù)卷容器刪除文件后不會(huì)影響掛載在此容器上的其他容器的數(shù)據(jù)訪問(wèn)。是一種拷貝的概念,備份拷貝機(jī)制。

在這里插入圖片描述

容器之間配置信息的傳遞,數(shù)據(jù)卷容器的生命周期持續(xù)到?jīng)]有容器使用為止。
但是一旦持久化到本地,本地的數(shù)據(jù)是不會(huì)刪除的。

總結(jié)

原文鏈接:https://blog.csdn.net/weixin_43510203/article/details/122210744

欄目分類
最近更新