国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【DevOps系列】Docker數(shù)據(jù)卷(volume)詳解

這篇具有很好參考價值的文章主要介紹了【DevOps系列】Docker數(shù)據(jù)卷(volume)詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【DevOps系列】Docker數(shù)據(jù)卷(volume)詳解

一、概述

Docker的鏡像是由多個只讀的文件系統(tǒng)疊加在一起形成。啟動一個容器的時候,docker會加載只讀層并在只讀層的上面(棧頂)增加一個讀寫層。如果需要修改只讀層的文件,那么這個文件層需要復(fù)制到讀寫層。該文件的只讀版本還在,只是被上面寫層的文件副本隱藏。當(dāng)刪除docker或重新啟動時,之前的更改文件會消失。在Docker中,只讀層與讀寫層的組合稱為Union File System(聯(lián)合文件系統(tǒng))。Docker將運用與運行的環(huán)境打包形成容器運行,Docker容器產(chǎn)生的數(shù)據(jù),如果不通過docker commits生成新的鏡像,使得數(shù)據(jù)做為鏡像的一部分保存下來,那么當(dāng)容器刪除后,數(shù)據(jù)自然也就沒有,為了能保存數(shù)據(jù)在Docker,Docker設(shè)計了一個機制既(Volume)

為了很好的實現(xiàn)數(shù)據(jù)保存和數(shù)據(jù)共享,Docker提出了Volume這個概念,就是繞過默認(rèn)的聯(lián)合文件系統(tǒng),而以正常的文件或者目錄的形式存在于宿主機上,這個目錄或文件稱為數(shù)據(jù)卷。

二、數(shù)據(jù)卷

【DevOps系列】Docker數(shù)據(jù)卷(volume)詳解,Spring Cloud,devops,docker,eureka

數(shù)據(jù)卷(Volume)是一個可供一個或多個容器使用的特殊目錄,它繞過UFS,可以提供以下一些特性:

  • 數(shù)據(jù)卷可在容器之間共享或重用數(shù)據(jù)。
  • 卷中的更改可以直接生效。
  • 數(shù)據(jù)卷中的更改不會包含在鏡像的更新中。
  • 數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止。

三、為什么使用數(shù)據(jù)卷volume

卷是在一個或多個容器內(nèi)被選定的目錄,為docker提供持久化數(shù)據(jù)或共享數(shù)據(jù),是docker存儲容器生成和使用的數(shù)據(jù)的首選機制。對卷的修改會直接生效,當(dāng)提交或創(chuàng)建鏡像時,卷不被包括在鏡像中。

數(shù)據(jù)卷的作用:

  1. 持久化數(shù)據(jù)
  2. 共享數(shù)據(jù)

數(shù)據(jù)卷的特點:

  1. 即使生效
  2. 卷的更新不影響鏡像
  3. 即使容器停止或被刪除,卷默認(rèn)也一致存在

四、數(shù)據(jù)卷volume基本操作

4.1 創(chuàng)建數(shù)據(jù)卷

使用如下命令可以創(chuàng)建一個數(shù)據(jù)卷

  • docker volume create 卷名
docker volume create db_vol

使用這種方式創(chuàng)建的數(shù)據(jù)卷可也被docker volume管理,如查看,刪除等。

4.2 查看數(shù)據(jù)卷

docker volume ls

4.3 查看數(shù)據(jù)卷詳細(xì)信息

  • docker volume inspect 卷名
docker volume inspect db_vol

4.4 數(shù)據(jù)卷刪除

  • docker volume rm 卷名
docker volume rm db_vol

五、數(shù)據(jù)卷的使用

5.1 先創(chuàng)建數(shù)據(jù)卷在掛載

docker volume create data_volume

5.2 創(chuàng)建容器使用數(shù)據(jù)卷

docker run -d -it \
> --name volumetest \
> --mount source=data-vol,target=/data \
> ubuntu

注:加了“\”意為將最后的回車換行給注釋了,系統(tǒng)理解為命令還沒有結(jié)束,因而是繼續(xù)等待用戶進(jìn)行輸入,直到讀到結(jié)束符。

簡寫方式(-v):

docker run -d -it \
> --name volumetest \
> -v data-vol:/data \
> ubuntu

5.3 直接掛載宿主機目錄

通過這種方式不需要事先創(chuàng)建數(shù)據(jù)卷,直接指定宿主機的一個目錄掛載到容器中,但宿主機中對應(yīng)的目錄要存在,否則會報一下異常

docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /root/vdata.
1). mount方式創(chuàng)建容器命令如下:
docker run -d -it \
> --name volumetest02 \
> --mount type=bind,source=/home/lisen/vdata,target=/vdata \
> ubuntu
2). -v方式創(chuàng)建命令如下:
docker run -dit --name volumetest02 -v /home/lisen/vdata:/vdata ubuntu

5.4 只讀數(shù)據(jù)卷

創(chuàng)建的數(shù)據(jù)卷默認(rèn)是可以讀寫的,這適合于絕大多數(shù)情況,也可以將卷設(shè)置為只讀的

1). mount方式創(chuàng)建容器命令如下:
docker run -d -it \
> --name volumetest02 \
> --mount type=bind,source=/home/lisen/vdata,target=/vdata,ro \
> ubuntu
2). -v方式創(chuàng)建(可以理解為簡寫方式):
docker run -dit --name volumetest02 -v /home/lisen/vdata:/vdata:ro ubuntu

數(shù)據(jù)卷的主要作用是數(shù)據(jù)持久化和數(shù)據(jù)共享,所以一般不用只讀方式。

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

用途:數(shù)據(jù)卷容器主要目的是多個容器之間共享一些持續(xù)更新的數(shù)據(jù),數(shù)據(jù)卷容器也是一個容器,專門提供數(shù)據(jù)卷給其他容器掛載。

1).新建數(shù)據(jù)卷容器
docker run -it -d --name data-volume-con -v /data ubuntu
2).新建一個容器來使用數(shù)據(jù)卷容器
docker run -it -d --name db-con-1 --volumes-from data-volume-con ubuntu

參數(shù)–volumes-from用于指定數(shù)據(jù)卷容器;進(jìn)入新建的容器,在掛載的目錄中(data目錄,既創(chuàng)建數(shù)據(jù)卷容器時指定的目錄)新建一個測試文件。

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

1).?dāng)?shù)據(jù)卷的備份

創(chuàng)建一個容器,該容器既掛載了需要備份的數(shù)據(jù)卷(有volumes-from參數(shù)指定),又掛載了用來備份數(shù)據(jù)的數(shù)據(jù)卷(可以用-v參數(shù)指定),通過tar壓縮命令,將volumes-from參數(shù)指定的需要備份的數(shù)據(jù)卷,壓縮到用來備份的數(shù)據(jù)卷中(等同于保存到了宿主機對應(yīng)的目錄中)。

docker run --rm \
> --name backup \
> --volumes-from data-volume-con \
> -v /host-backup:/con-backup \
> ubuntu tar cvf /con-backup/backup200201.tar /data
  • –rm 參數(shù),指定了創(chuàng)建的容器為臨時容器,運行完后將自動刪除,我們只是借助這個容器完成備份,備份完成后數(shù)據(jù)存放于宿主機中,容器自然也就不需要了。
  • –volumes-from 參數(shù),指定了需要備份的數(shù)據(jù)卷容器
  • -v 參數(shù),指定了用來備份數(shù)據(jù)的數(shù)據(jù)卷,/host-backup為宿主機目錄,/con-backup為對應(yīng)的容器目錄
  • tar 命令完成數(shù)據(jù)壓縮,注意壓縮的源為容器目錄,因為壓縮命令實際上實在容器中執(zhí)行的,確切的說是在backup容器中執(zhí)行(–name參數(shù)指定的),壓縮完成后自然也會保存到宿主機目錄。
2).?dāng)?shù)據(jù)還原

新建一個數(shù)據(jù)卷容器,這個容器作為存放還原數(shù)據(jù)的容器。

docker run -it --name data-volume-con2 -v /data ubuntu

創(chuàng)建一個臨時容器,既掛載了用于存放還原數(shù)據(jù)的數(shù)據(jù)卷容器,又掛載了存有備份數(shù)據(jù)的數(shù)據(jù)卷,然后使用tar命令,將備份的數(shù)據(jù)解壓到存放還原數(shù)據(jù)的數(shù)據(jù)卷中。文章來源地址http://www.zghlxwxcb.cn/news/detail-724241.html

  • –rm 參數(shù),請參見“數(shù)據(jù)備份”部分的解釋
  • –volumes-from 參數(shù),指定用于保存還原數(shù)據(jù)的容器
  • -v 參數(shù), 用于指定存有備份數(shù)據(jù)的數(shù)據(jù)卷,/host-backup是宿主機上用來存放備份數(shù)據(jù)的目錄,將其掛載到容器的/container-back目錄,tar命令通過/container-back

到了這里,關(guān)于【DevOps系列】Docker數(shù)據(jù)卷(volume)詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • DevOps系列文章之 Docker 安裝 NFS 服務(wù)器

    DevOps系列文章之 Docker 安裝 NFS 服務(wù)器

    環(huán)境: 192.186.2.105 NFS 服務(wù)器 192.168.2.106 Client 客戶端 安裝 一、服務(wù)器端 https://github.com/f-u-z-z-l-e/docker-nfs-server 1、創(chuàng)建目錄 2、啟動腳本 二、安裝 客戶端 1、安裝 2、查看 showmount -e 192.168.59.139 如圖所示可以看到NFS服務(wù)器內(nèi)的共享文件夾為nfs(因為我們的nfs服務(wù)端部署為docker部

    2024年02月14日
    瀏覽(21)
  • DevOps系列文章之 docker插件實現(xiàn)多實例部署(IDEA插件)

    DevOps系列文章之 docker插件實現(xiàn)多實例部署(IDEA插件)

    1. Docker的安裝以及開啟遠(yuǎn)程訪問 1.1 安裝 # 檢查虛擬機內(nèi)核版本,必須是3.10及以上 uname -r # 安裝docker yum install docker # 輸入y確認(rèn)安裝 # 啟動docker systemctl start docker # 查看docker版本 docker -v # 開機啟動docker systemctl enable docker # 停止docker systemctl stop docker # 重啟docker systemctl restart do

    2024年02月10日
    瀏覽(20)
  • DevOps系列文章之Docker部署web ssh工具sshwifty

    DevOps系列文章之Docker部署web ssh工具sshwifty

    1.sshwifty簡介 sshwifty是一款Web SSH Telnet(WebSSH WebTelnet 客戶端工具。 2.shwifty 特點 shwifty 是為 Web 設(shè)計的 SSH 和 Telnet 連接器。它可以部署在您的計算機或服務(wù)器上,為任何兼容(標(biāo)準(zhǔn))的網(wǎng)絡(luò)瀏覽器提供 SSH 和 Telnet 訪問接口。 1.檢查docker版本 [root@jeven ~] # docker version Client: Docke

    2024年02月10日
    瀏覽(17)
  • DevOps系列之 Python操作數(shù)據(jù)庫

    安裝pymysql pip install pymysql pymysql操作數(shù)據(jù)庫 1.連接數(shù)據(jù)庫 使用Connect方法連接數(shù)據(jù)庫 pymysql.Connections.Connection(host=None, user=None, password=\\\'\\\', database=None, port=0, charset=\\\'\\\') 參數(shù)說明: host – 數(shù)據(jù)庫服務(wù)器所在的主機。 user – 登錄用戶名。 password – 登錄用戶密碼。 database – 連接的數(shù)據(jù)

    2024年02月02日
    瀏覽(19)
  • DevOps系列文章之 DevOps 運維服務(wù)體系

    DevOps系列文章之 DevOps 運維服務(wù)體系

    DevOps 體系是從原始運維一步步走過來的,原始運維好比是本,有了本進(jìn)而想繼續(xù)提升效率、減少出錯、優(yōu)化流程,就發(fā)展到了 DevOps,AIOps……各種Ops 首先,運維的業(yè)務(wù)職能規(guī)范后形成章程、綱領(lǐng),在互聯(lián)網(wǎng)快速發(fā)展的特點下,形成了一套應(yīng)對”快”和”變”的體系,并不停

    2024年02月12日
    瀏覽(24)
  • DevOps系列文章 之 Python 基礎(chǔ)

    考點:字符串:str( )、整型數(shù):int( )、浮點數(shù):float( ) 考點:條件分支 考點:引入隨機數(shù) 考點:while循環(huán)語句 考點:for循環(huán)語句 Python語言支持以下類型的運算符 以下假設(shè)變量a為10,變量b為20: 運算符 描述 實例 + 加 - 兩個對象相加 a + b 輸出結(jié)果 30 - 減 - 得到負(fù)數(shù)或是一個

    2024年02月11日
    瀏覽(19)
  • DevOps系列文章 之 Python基礎(chǔ)

    1.定義 1、集合是一個無序的,不重復(fù)的數(shù)據(jù)組合,它的主要作用如下: 1.去重,把一個列表變成集合,就自動去重了 2.關(guān)系測試,測試兩組數(shù)據(jù)之前的交集、差集、并集等關(guān)系 2、集合類型 1.數(shù)學(xué)上,把set稱做由不同的元素組成的集合,集合(set)的成員通常被稱做集合元素

    2024年02月11日
    瀏覽(22)
  • DevOps系列文章之 Git知識大全

    DevOps系列文章之 Git知識大全

    常用命令 ? 其他參數(shù) --inital-branch 初始化的分支 --bare 創(chuàng)建一個裸倉庫(純 Git 目錄,沒有工作目錄) --template 可以通過模板來創(chuàng)建預(yù)先建好的自定義 git 目錄 ? 用戶名配置 git config --global user.name \\\"yourname\\\" git config --global user.email yourname@xx.com instead of 配置 git config --global url.git

    2024年02月16日
    瀏覽(17)
  • DevOps系列文章之 Dockerfile 使用流程

    主要步驟: Step1、準(zhǔn)備項目應(yīng)用程序包 Step2、編寫Dockerfile及啟動腳本 Step3、docker build 構(gòu)建鏡像 Step4、docker run 啟動容器 Step5、docker exec 進(jìn)入容器進(jìn)行驗證 Step6、鏡像的導(dǎo)入導(dǎo)出 Step7、提交容器生成新鏡像 Step1、準(zhǔn)備項目應(yīng)用程序包 根據(jù)項目需要,將應(yīng)用程序包、Nginx配置文件

    2024年02月16日
    瀏覽(22)
  • DevOps系列文章 之 Springboot單元測試

    在沒有代碼生成工具或嘗試一門新的 ORM 框架時,當(dāng)我們希望不去另外寫 Service 和 Controller 來驗證 DAO 層的代碼不希望只通過接口請求的方式來驗證時,這時候單元測試的方式就可以幫助我們滿足這一需求。 在我們開發(fā)Web應(yīng)用時,經(jīng)常會直接去觀察結(jié)果進(jìn)行測試。雖然也是一

    2024年02月15日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包