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

Docker 數(shù)據(jù)卷操作的實現(xiàn)

 更新時間:2019年06月07日 08:56:04   作者:Just Do Java  
這篇文章主要介紹了Docker 數(shù)據(jù)卷操作的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

數(shù)據(jù)卷入門

在前面的案例中,如果我們需要將數(shù)據(jù)從宿主機拷貝到容器中,一般都是使用 Docker 的拷貝命令,這樣性能還是稍微有點差,沒有辦法能夠達到讓這種拷貝達到本地磁盤 I/O 性能呢?有!

數(shù)據(jù)卷可以繞過拷貝系統(tǒng),在多個容器之間、容器和宿主機之間共享目錄或者文件,數(shù)據(jù)卷繞過了拷貝系統(tǒng),可以達到本地磁盤 I/O 性能。

本文先通過一個簡單的案例向讀者展示數(shù)據(jù)卷的基本用法。

以前面使用的 nginx 鏡像為例,在運行該容器時,可以指定一個數(shù)據(jù)卷,命令如下:

docker run -itd --name nginx -v /usr/share/nginx/html/ -p 80:80 bc26f1ed35cf

運行效果如下:

此時,我們創(chuàng)建了一個數(shù)據(jù)卷并且掛載到容器的 /usr/share/nginx/html/ 目錄下,小伙伴們知道,該目錄實際上是 nginx 保存 html 目錄,在這里掛載數(shù)據(jù)卷,一會我們只需要修改本地的映射位置,就能實現(xiàn)頁面的修改了。

接下來使用 docker inspect 命令查看剛剛創(chuàng)建的容器的具體情況,找到數(shù)據(jù)卷映射目錄,如下:

可以看到,Docker默認將宿主機的 /var/lib/docker/volumes/0746bdcfc045b237a6fe2288a3af9d7b80136cacb3e965db65a212627e217d75/_data 目錄作為source目錄,接下來,進入到該目錄中,如下:

此時發(fā)現(xiàn)該目錄下的文件內(nèi)容與容器中 /usr/share/nginx/html/ 目錄下的文件內(nèi)容一致,這是因為掛載一個空的數(shù)據(jù)卷到容器中的一個非空目錄中,那么這個目錄下的文件會被復(fù)制到數(shù)據(jù)卷中(如果掛載一個非空的數(shù)據(jù)卷到容器中的一個目錄中,那么容器中的目錄中會顯示數(shù)據(jù)卷中的數(shù)據(jù)。如果原來容器中的目錄中有數(shù)據(jù),那么這些原始數(shù)據(jù)會被隱藏掉)。

小貼士:

由于 Mac 中的 Docker 有點特殊,上文提到的 /var/lib/xxxx 目錄,如果是在 linux 環(huán)境下,則直接進入即可,如果是在 mac 中,需要首先執(zhí)行如下命令,在新進入的命令行中進入到 /var/lib/xxx 目錄下:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

接下來修改改文件中的index.html文件內(nèi)容,如下:

echo "hello volumes">index.html

修改完成后,再回到瀏覽器中,輸入 http://localhost查看nginx中index.html 頁面中的數(shù)據(jù),發(fā)現(xiàn)已經(jīng)發(fā)生改變。說明宿主機中的文件共享到容器中去了。

結(jié)合宿主機目錄

上文中對于數(shù)據(jù)卷的用法還不是最佳方案,一般來說,我們可能需要明確指定將宿主機中的一個目錄掛載到容器中,這種指定方式如下:

docker run -itd --name nginx -v /Users/sang/blog/docker/docker/:/usr/share/nginx/html/ -p 80:80 bc26f1ed35cf

這樣便是將宿主機中的 /Users/sang/blog/docker/docker/ 目錄掛載到容器的 /usr/share/nginx/html/ 目錄下。接下來讀者只需要在 /Users/sang/blog/docker/docker/ 目錄下添加 html 文件,或者修改 html 文件,都能在 nginx 訪問中立馬看到效果。

這種用法對于開發(fā)測試非常方便,不用重新部署,重啟容器等。

注意:宿主機地址是一個絕對路徑

 更多操作

Dockerfile中的數(shù)據(jù)卷

如果開發(fā)者使用了 Dockerfile 去構(gòu)建鏡像,也可以在構(gòu)建鏡像時聲明數(shù)據(jù)卷,例如下面這樣:

FROM nginx
ADD https://www.baidu.com/img/bd_logo1.png /usr/share/nginx/html/
RUN echo "hello docker volume!">/usr/share/nginx/html/index.html
VOLUME /usr/share/nginx/html/

這樣就配置了一個匿名數(shù)據(jù)卷,運行過程中,將數(shù)據(jù)寫入到 /usr/share/nginx/html/ 目錄中,就可以實現(xiàn)容器存儲層的無狀態(tài)變化。

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

使用如下命令可以查看所有數(shù)據(jù)卷:

docker volume ls

如圖:

查看數(shù)據(jù)卷詳情

根據(jù) volume name 可以查看數(shù)據(jù)詳情,如下:

docker volume inspect

執(zhí)行結(jié)果如下圖:

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

可以使用 docker volume rm 命令刪除一個數(shù)據(jù)卷,也可以使用 docker volume prune 批量刪除數(shù)據(jù)卷,如下:

批量刪除時,未能刪除掉所有的數(shù)據(jù)卷,還剩一個,這是因為該數(shù)據(jù)卷還在使用中,將相關(guān)的容器停止并移除,再次刪除數(shù)據(jù)卷就可以成功刪除了,如圖:

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

數(shù)據(jù)卷容器是一個專門用來掛載數(shù)據(jù)卷的容器,該容器主要是供其他容器引用和使用。所謂的數(shù)據(jù)卷容器,實際上就是一個普通的容器,舉例如下:

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

使用如下方式創(chuàng)建數(shù)據(jù)卷容器:

docker run -itd -v /usr/share/nginx/html/ --name mydata ubuntu

命令執(zhí)行效果如下圖:

  • 引用容器

使用如下命令引用數(shù)據(jù)卷容器:

docker run -itd --volumes-from mydata -p 80:80 --name nginx1 nginx
docker run -itd --volumes-from mydata -p 81:80 --name nginx2 nginx

此時, nginx1 和 nginx2 都掛載了同一個數(shù)據(jù)卷到 /usr/share/nginx/html/ 目錄下,三個容器中,任意一個修改了該目錄下的文件,其他兩個都能看到變化。

此時,使用 docker inspect 命令查看容器的詳情,發(fā)現(xiàn)三個容器關(guān)于數(shù)據(jù)卷的描述都是一致的,如下圖:

總結(jié)

本文主要向大家介紹了數(shù)據(jù)卷中的容器操作,整體來說還是非常簡單的,小伙伴們,你學(xué)會了嗎?

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker-compose安裝RabbitMQ及插件操作步驟

    docker-compose安裝RabbitMQ及插件操作步驟

    這篇文章主要為大家介紹了docker-compose安裝RabbitMQ及插件操作步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Docker中使用Redis配置文件的詳細指南

    Docker中使用Redis配置文件的詳細指南

    在現(xiàn)代軟件開發(fā)中,Redis 因其高性能和低延遲的特性,被廣泛用作數(shù)據(jù)結(jié)構(gòu)服務(wù)器和消息代理,Docker 作為一個輕量級的容器化平臺,使得部署和管理 Redis 變得更加簡單和高效,本文給大家介紹了Docker中使用Redis配置文件的詳細指南,需要的朋友可以參考下
    2024-11-11
  • docker部署Nestjs的簡單配置實現(xiàn)

    docker部署Nestjs的簡單配置實現(xiàn)

    使用Docker部署NestJS應(yīng)用程序可以確保在不同的環(huán)境中運行一致,并且避免了由于依賴關(guān)系或配置問題導(dǎo)致的部署錯誤,本文主要介紹了docker來部署Nestjs的簡單配置,感興趣的可以了解一下
    2024-02-02
  • 使用docker compose安裝FastDfs文件服務(wù)器的實例詳解

    使用docker compose安裝FastDfs文件服務(wù)器的實例詳解

    這篇文章主要介紹了使用docker compose安裝FastDfs文件服務(wù)器的實例詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Mac上將brew安裝的MySql改用Docker執(zhí)行操作過程

    Mac上將brew安裝的MySql改用Docker執(zhí)行操作過程

    本文分步驟給大家介紹Mac上將brew安裝的MySql改用Docker執(zhí)行操作過程的知識,本文給大家介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • 清理或刪除docker無用鏡像的操作方法

    清理或刪除docker無用鏡像的操作方法

    這篇文章主要介紹了清理或刪除docker無用鏡像的操作方法,清除docker無用鏡像首先查看docker占用的資源,只刪除那些未被使用的資源,文中給大家補充介紹了docker?批量刪除無用的容器或鏡像的方法,感興趣的朋友一起看看吧
    2023-01-01
  • Docker初級網(wǎng)絡(luò)端口映射的配置

    Docker初級網(wǎng)絡(luò)端口映射的配置

    這篇文章主要介紹了Docker初級網(wǎng)絡(luò)端口映射的配置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Docker運行Web服務(wù)實戰(zhàn)之Tomcat的詳細過程

    Docker運行Web服務(wù)實戰(zhàn)之Tomcat的詳細過程

    Tomcat是由Apache軟件基金會下屬的Jakarta項目開發(fā)的一個Servlet容器,按照Sun Microsystems提供的技術(shù)規(guī)范,實現(xiàn)了對Servlet和Java Server Page(JSP)的支持,這篇文章主要介紹了Docker運行Web服務(wù)實戰(zhàn)之Tomcat的詳細過程,需要的朋友可以參考下
    2022-08-08
  • docker-compose啟動redis多機集群的實現(xiàn)(6臺服務(wù)器3主3從)

    docker-compose啟動redis多機集群的實現(xiàn)(6臺服務(wù)器3主3從)

    本文主要介紹了docker-compose啟動redis多機集群的實現(xiàn)(6臺服務(wù)器3主3從),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • docker images本地遷移的實現(xiàn)

    docker images本地遷移的實現(xiàn)

    這篇文章主要介紹了docker images本地遷移的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論

山西省| 剑川县| 宝山区| 邵阳市| 策勒县| 太康县| 浪卡子县| 曲靖市| 长岛县| 英吉沙县| 万宁市| 静宁县| 滦平县| 陆良县| 万盛区| 色达县| 印江| 土默特左旗| 曲沃县| 阳信县| 隆安县| 思茅市| 临桂县| 新乐市| 洪洞县| 崇左市| 双流县| 民县| 疏附县| 靖远县| 游戏| 临城县| 托里县| 灵山县| 牙克石市| 新河县| 华容县| 华安县| 工布江达县| 铜川市| 南漳县|