最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker數(shù)據(jù)卷掛載及宿主機(jī)目錄掛載使用和區(qū)別

 更新時(shí)間:2024年02月03日 10:23:03   作者:Java方文山  
本文主要介紹了Docker數(shù)據(jù)卷掛載及宿主機(jī)目錄掛載使用和區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

?前言

假設(shè)我們有一個(gè)容器化的機(jī)器學(xué)習(xí)模型訓(xùn)練應(yīng)用程序。該應(yīng)用程序需要大量的訓(xùn)練數(shù)據(jù)來進(jìn)行模型的訓(xùn)練,而這些訓(xùn)練數(shù)據(jù)可能會(huì)占據(jù)大量的存儲(chǔ)空間。如果我們將訓(xùn)練數(shù)據(jù)直接放在容器內(nèi)部,會(huì)導(dǎo)致容器的鏡像體積增大,每次創(chuàng)建或啟動(dòng)容器都需要復(fù)制整個(gè)數(shù)據(jù)集,這將消耗大量的時(shí)間和存儲(chǔ)資源,而且容器被刪除了不可逆,那么就會(huì)導(dǎo)致數(shù)據(jù)丟失非常的不方便。

當(dāng)使用數(shù)據(jù)卷掛載和宿主機(jī)目錄掛載時(shí):

  • 數(shù)據(jù)庫(kù)存儲(chǔ):在容器化的應(yīng)用程序中,數(shù)據(jù)庫(kù)通常需要持久化存儲(chǔ)數(shù)據(jù)。通過將數(shù)據(jù)庫(kù)的數(shù)據(jù)卷掛載到容器中,可以確保數(shù)據(jù)在容器重啟或更新時(shí)不會(huì)丟失。這樣,即使容器被銷毀,數(shù)據(jù)仍然可以在其他容器中使用。數(shù)據(jù)卷掛載還可以用于容器之間共享數(shù)據(jù)庫(kù)的備份文件。
  • Web服務(wù)器日志:對(duì)于運(yùn)行在容器中的Web服務(wù)器,日志文件是非常重要的記錄和分析工具。通過將宿主機(jī)上的日志目錄掛載到容器中,可以實(shí)時(shí)記錄容器內(nèi)的日志,并將其保存到宿主機(jī)上。這樣,在容器重啟或刪除后,日志仍然可以在宿主機(jī)上進(jìn)行查看和分析。
  • 文件共享:如果有多個(gè)容器需要訪問相同的文件(例如配置文件、證書文件等),可以將這些文件放置在宿主機(jī)上的一個(gè)目錄中,并將該目錄通過宿主機(jī)目錄掛載到各個(gè)容器中。這樣,所有容器都可以共享和訪問這些文件,而不需要在每個(gè)容器中復(fù)制一份。
  • 靜態(tài)資源存儲(chǔ):對(duì)于網(wǎng)站或應(yīng)用程序中的靜態(tài)資源(如圖片、CSS和JavaScript文件),可以將這些資源放置在宿主機(jī)上的一個(gè)目錄中,并通過宿主機(jī)目錄掛載到運(yùn)行Web服務(wù)器的容器中。這樣,容器就可以直接從宿主機(jī)上加載和提供靜態(tài)資源,而不需要將資源復(fù)制到每個(gè)容器中。

一、數(shù)據(jù)卷掛載

1.數(shù)據(jù)卷是什么

數(shù)據(jù)卷是一個(gè)虛擬目錄,它將宿主機(jī)目錄映射到容器內(nèi)目錄,方便我們操作容器內(nèi)文件,或者方便遷移容器產(chǎn)生的數(shù)據(jù)。

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

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

  • 數(shù)據(jù)卷 可以在容器之間共享和重用
  • 對(duì)數(shù)據(jù)卷的修改會(huì)立馬生效
  • 對(duì)數(shù)據(jù)卷的更新,不會(huì)影響鏡像
  • 數(shù)據(jù)卷默認(rèn)會(huì)一直存在,即使容器被刪除

2.數(shù)據(jù)卷的基本使用

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

docker volume create 數(shù)據(jù)卷名稱

查看所有數(shù)據(jù)卷

docker volume ls

查看數(shù)據(jù)卷信息

docker volume inspect my-vol

 刪除一個(gè)volume

docker volume rm my-vol

數(shù)據(jù)卷 是被設(shè)計(jì)用來持久化數(shù)據(jù)的,它的生命周期獨(dú)立于容器,Docker不會(huì)在容器被刪除后自動(dòng) 刪除數(shù)據(jù)卷,并且也不存在垃圾回收這樣的機(jī)制來處理沒有任何容器引用的數(shù)據(jù)卷,無(wú)主的數(shù)據(jù)卷 可能會(huì)占據(jù)很多空間,所以要及時(shí)刪除.

掛載數(shù)據(jù)卷

在用 docker run 命令的時(shí)候,使用 --mount 標(biāo)記來將 數(shù)據(jù)卷 掛載到容器里。在一次 docker run 中可以掛載多個(gè) 數(shù)據(jù)卷 。

docker run -itd \
--name 容器名字 \
--mount source=數(shù)據(jù)卷名稱,target=容器中的對(duì)應(yīng)目錄 \
鏡像名稱

最好是通過run而非create/start創(chuàng)建啟動(dòng)容器,create/start命令創(chuàng)建啟動(dòng)容器后,再掛載數(shù)據(jù)卷 相當(dāng)麻煩,要修改很多配置文件,但并非不可以。

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

  • 如果數(shù)據(jù)卷不存在,docker會(huì)自動(dòng)創(chuàng)建
  • 如果容器上目錄不存在, docker會(huì)自動(dòng)創(chuàng)建

注意:-it掛載后會(huì)直接進(jìn)入容器,-itd則是在掛載不進(jìn)入

查看是否掛載成功

首先查看我們數(shù)據(jù)卷的目錄位置

docker inspect name

該目錄就是數(shù)據(jù)卷的目錄,我們現(xiàn)在進(jìn)入該目錄新建一個(gè)文本

然后我們進(jìn)入容器查看是否有該文件,如果有文件說明掛載成功實(shí)現(xiàn)共享

二、宿主機(jī)目錄掛載

1.什么是目錄掛載

目錄掛載是將主機(jī)上的一個(gè)目錄直接掛載到容器中,容器中的文件會(huì)直接覆蓋主機(jī)上的文件,這種方式不適合多個(gè)容器共享數(shù)據(jù)。目錄掛載的好處是可以方便地將主機(jī)上的文件或目錄與容器中的文件或目錄進(jìn)行同步,方便開發(fā)和調(diào)試。

2.目錄掛載的基本使用

首先我們?cè)谒拗鳈C(jī)上創(chuàng)建一個(gè)目錄用于存放資源

將提前準(zhǔn)備好的war放入該目錄中

掛載目錄

docker run -itd \
--name 容器名字 \
--mount type=bind,source=宿主機(jī)目錄,target=容器中的對(duì)應(yīng)目錄 \
鏡像名稱

或者使用簡(jiǎn)化版本

docker run -itd \
--name t1 \
-v /soft:/user/local/tomcat/webapps \
-p 8080:8080 \
tomcat:8.5.40

解釋該命令的各個(gè)部分如下:

  • docker run: 運(yùn)行一個(gè)新的容器。
  • -itd: 這是三個(gè)選項(xiàng)的組合:
    • -i:保持標(biāo)準(zhǔn)輸入 (stdin) 打開,即使未附加也可以與容器進(jìn)行交互。
    • -t:為容器分配一個(gè)偽終端 (pseudo-TTY)。
    • -d:將容器設(shè)為后臺(tái)運(yùn)行模式。
  • --name t1:為容器指定一個(gè)名稱為 "t1",以便于管理和引用它。
  • -v /soft:/user/local/tomcat/webapps:將本地宿主機(jī)上的目錄 /soft 掛載到容器內(nèi)的 /user/local/tomcat/webapps 目錄。這意味著容器中的 Tomcat 應(yīng)用程序?qū)⒛軌蛟L問并使用位于 /soft 目錄下的文件。
  • -p 8080:8080:將容器內(nèi)的端口 8080 映射到宿主機(jī)的端口 8080。這樣,當(dāng)在宿主機(jī)上訪問 http://localhost:8080 時(shí),實(shí)際上是訪問容器內(nèi)運(yùn)行的 Tomcat 服務(wù)器。
  • tomcat:8.5.40:使用 tomcat:8.5.40 鏡像啟動(dòng)容器。 

 但是這么使用有一個(gè)弊端,它是將整個(gè)文件夾進(jìn)行替換我們想要的效果是單個(gè)文件進(jìn)行替換

docker run -itd \
--name t1 \
-v /soft/oapro.war:/user/local/tomcat/webapps/oapro.war \
-p 8080:8080 \
tomcat:8.5.40

 這樣就可以精準(zhǔn)替換我們想要的文件并且不應(yīng)該原文件了

三、案例(實(shí)現(xiàn)Tomcat在線部署)

實(shí)現(xiàn) Tomcat 在線部署是指在 Tomcat 運(yùn)行的過程中,通過上傳 WAR 文件或目錄來動(dòng)態(tài)地添加、刪除或更新 Web 應(yīng)用程序。這種方式可以避免每次更改應(yīng)用程序時(shí)都要重新啟動(dòng) Tomcat 的麻煩,并大大提高了開發(fā)和調(diào)試的效率。

但是直接點(diǎn)擊就會(huì)報(bào)錯(cuò),原因是因?yàn)槲覀儧]有用戶信息

 所以我們現(xiàn)在結(jié)合上面的內(nèi)容進(jìn)行目錄掛載,首先我們需要

修改E:\apache-tomcat-8.5.40\webapps\manager\META-INF\context.xml

修改E:\apache-tomcat-8.5.40\conf\tomcat-users.xml

將就該完成的文件復(fù)制到liunx目錄中

將我們docker中的tomcat文件進(jìn)行替換

docker run -itd \
--name t1 \
-v /soft/tomcat-users.xml:/user/local/tomcat/conf/tomcat-users.xml \
-v /soft/context.xml:/user/local/tomcat/webapps/manager/META-INF/context.xml \
-p 8080:8080 \
tomcat:8.5.40

四、二者區(qū)別

數(shù)據(jù)卷掛載適合多個(gè)容器共享數(shù)據(jù),而目錄掛載適合單個(gè)容器與主機(jī)之間進(jìn)行數(shù)據(jù)交換。

到此這篇關(guān)于Docker數(shù)據(jù)卷掛載及宿主機(jī)目錄掛載使用和區(qū)別的文章就介紹到這了,更多相關(guān)Docker數(shù)據(jù)卷掛載及宿主機(jī)目錄掛載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker搭建私有化倉(cāng)庫(kù)的幾種方法

    Docker搭建私有化倉(cāng)庫(kù)的幾種方法

    搭建 Docker 私有化倉(cāng)庫(kù)是一個(gè)非常重要的實(shí)踐,它能夠幫助你安全地存儲(chǔ)和管理 Docker 鏡像,本文主要介紹了Docker搭建私有化倉(cāng)庫(kù)的的幾種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • ubuntu17.10安裝docker-ce的方法

    ubuntu17.10安裝docker-ce的方法

    本篇文章主要介紹了ubuntu 17.10 安裝docker-ce的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • 如何修改Docker的默認(rèn)網(wǎng)段

    如何修改Docker的默認(rèn)網(wǎng)段

    文章指導(dǎo)如何修改Docker網(wǎng)段:通過編輯daemon.json配置文件設(shè)置新網(wǎng)段和鏡像源,重啟Docker服務(wù),最后驗(yàn)證docker0接口及容器IP是否更新,確保網(wǎng)絡(luò)配置生效
    2025-08-08
  • Docke容器分離部署LNMP的實(shí)現(xiàn)

    Docke容器分離部署LNMP的實(shí)現(xiàn)

    這篇文章主要介紹了Docke容器分離部署LNMP的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Docker下利用jenkins和docker實(shí)現(xiàn)持續(xù)交付

    Docker下利用jenkins和docker實(shí)現(xiàn)持續(xù)交付

    這篇文章主要介紹了利用jenkins和docker實(shí)現(xiàn)持續(xù)交付功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05
  • docker使用Dockerfile構(gòu)建鏡像的實(shí)現(xiàn)示例

    docker使用Dockerfile構(gòu)建鏡像的實(shí)現(xiàn)示例

    本文主要介紹了docker使用Dockerfile構(gòu)建鏡像的實(shí)現(xiàn)示例,通過編寫 Dockerfile,您可以定義鏡像的基礎(chǔ)環(huán)境、安裝軟件包、復(fù)制文件、設(shè)置環(huán)境變量等操作,下面就來介紹一下
    2024-01-01
  • Docker部署Tomcat并開放8082端口的實(shí)現(xiàn)步驟

    Docker部署Tomcat并開放8082端口的實(shí)現(xiàn)步驟

    本文主要介紹了Docker部署Tomcat并開放8082端口的實(shí)現(xiàn)步驟,首先安裝docker環(huán)境,創(chuàng)建tomcat鏡像,隨后開放端口,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • docker安裝與docker-compose安裝配置nginx過程

    docker安裝與docker-compose安裝配置nginx過程

    文章記錄在CentOS?7.6部署環(huán)境的Docker安裝步驟、版本沖突解決方法及Docker?Compose配置流程,涵蓋內(nèi)核檢查、軟件包安裝、鏡像獲取與服務(wù)啟動(dòng)等關(guān)鍵操作
    2025-08-08
  • Docker如何使用Dockerfile構(gòu)建鏡像

    Docker如何使用Dockerfile構(gòu)建鏡像

    本篇文章主要介紹了Docker如何使用Dockerfile構(gòu)建鏡像,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Docker如何拉取oracle11g鏡像

    Docker如何拉取oracle11g鏡像

    這篇文章主要介紹了Docker如何拉取oracle11g鏡像問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評(píng)論

邢台县| 信宜市| 两当县| 六安市| 宁强县| 临泉县| 凤阳县| 青龙| 隆德县| 健康| 江达县| 涿州市| 澄城县| 青川县| 沂源县| 城步| 宜城市| 格尔木市| 夏河县| 方城县| 天津市| 襄樊市| 金川县| 顺平县| 无锡市| 临颍县| 绵竹市| 健康| 东海县| 淄博市| 罗定市| 唐山市| 土默特左旗| 女性| 永嘉县| 大邑县| 固始县| 宁乡县| 巴东县| 绥滨县| 霸州市|