五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

docker容器數(shù)據(jù)卷之具名掛載和匿名掛載問題

發(fā)布日期:2021-12-08 03:59 | 文章來源:gibhub

什么是容器數(shù)據(jù)卷

容器數(shù)據(jù)卷就是目錄的掛載,將我們的容器的目錄掛載到宿主機上,從而實現(xiàn)打通宿主機和容器之間的文件共享功能;

為什么需要容器數(shù)據(jù)卷

docker理念就是將應(yīng)用和環(huán)境打包成一個鏡像;但是數(shù)據(jù)怎么辦呢?且不說數(shù)據(jù)庫,一個項目在運行過程種肯定會產(chǎn)生大量的日志,這些日志對開發(fā)人員來說是非常重要的, 因為有了這些日志,我們才知道運行的過程中出現(xiàn)了哪些問題,然后進行排查找錯;

但是在容器中,項目每次更新迭代都會將容器刪除,直接替換新鏡像運行;那么在這種情況下,要保存這些日志文件的話,如果每次都去往容器里復(fù)制到宿主機,這個工作量會有點大,并且如果日志文件太大的話,復(fù)制的工作也是很耗時耗力的;所以這時候就需要用到容器數(shù)據(jù)卷的功能了,說白了這個功能非常地簡單,就是打通宿主和容器的文件共享功能;docker容器中產(chǎn)生的數(shù)據(jù)文件,會實時同步到宿主機中;相反的,宿主機產(chǎn)生的文件葉會同步到容器中;這樣就打通了雙向傳輸?shù)墓艿溃?/p>

容器和容器之間實現(xiàn)數(shù)據(jù)共享之后,就沒有主容器和子容器之分了,因為它們共享的數(shù)據(jù)只有一份,是保存在宿主機上面的,刪除任何一個容器,都不會影響其他容器的數(shù)據(jù)同步;

使用

使用容器數(shù)據(jù)卷非常簡單,只需要在運行的時候加上 -v 選項即可

docker run -d -v 主機目錄:容器目錄 tomcat

運行以上命令后,會在容器和宿主機上自動創(chuàng)建相應(yīng)的目錄,在目錄下創(chuàng)建或者修改文件都會自動同步過去;

如何查看是否使用了數(shù)據(jù)卷

查看一個容器是否使用了容器數(shù)據(jù)卷功能,可以通過inspect 功能查看容器的詳細信息

docker inspect 容器id/容器名稱

執(zhí)行以上命令后會打印一大堆已經(jīng)格式化的json字符串,這時候我們找到key為 Mounts的項就是容器數(shù)據(jù)卷的相關(guān)配置了,

"Mounts": [
    {
        "Type": "bind",  
        "Source": "/root/dockerContainer",  # 宿主機的目錄
        "Destination": "/text",  # 容器的目錄
        "Mode": "",
        "RW": true,   # RW可讀可寫;ro為只讀,只能修改宿主機的文件; 
        "Propagation": "rprivate"
    }
],

具名掛載和匿名掛載

指定路徑掛載

上面的例子中我們用的都是指定路徑掛載,就是即配置宿主機路徑,又配置了容器路徑;

docker run -d -v 主機目錄:容器目錄 tomcat

具名掛載

掛載到指定名稱的目錄;

# /xxx 是目錄, xxx是卷名,沒有斜桿的就是卷名
docker run -d -v 卷名:容器目錄 tomcat 
# 查找卷名所在的目錄
docker volume inspect 卷名

光說無益,測試一下,先創(chuàng)建容器并且掛載好目錄

docker run -d --name my_tomcat -v my_folder:/data/my_folder tomcat

使用 inspect 命令查看容器信息

docker inspect my_tomcat

在打印信息中找到 Mounts 項,其中Source的目錄就是宿主機的目錄;Destination的目錄是掛載的容器目錄;

"Mounts": [
    {
        "Type": "volume",
        "Name": "my_folder",
        "Source": "/var/lib/docker/volumes/my_folder/_data",
        "Destination": "/data/my_folder",
        "Driver": "local",
        "Mode": "z",
        "RW": true,
        "Propagation": ""
    }
]

接著進入容器

docker exec -it my_tomcat /bin/bash
# 在容器內(nèi)也已經(jīng)創(chuàng)建好了這個目錄
root@ef94ff8928a1:/data/my_folder# pwd
/data/my_folder

匿名掛載

匿名掛載就是只有容器目錄,沒有宿主機的目錄,所以生成出來的目錄是一個長長的加密字符串,一般情況下不建議使用匿名掛載;加密字符串會導(dǎo)致不易查找;

docker run -d -v \容器目錄 tomcat

來,測試一下,先創(chuàng)建容器并且掛載好目錄

docker run -d --name my_tomcat_2 -v /my_folder_2 tomcat

使用 inspect 命令查看容器信息

docker inspect my_tomcat_2

在打印信息中找到 Mounts 項,其中Source的目錄就是宿主機的目錄;Destination的目錄是掛載的容器目錄

"Mounts": [
    {
        "Type": "volume",
        "Name": "df4c649772a5ae65716de8ede0607d0776f8c1e2eda1d87b3ec9eaf011b43616",
        "Source": "/var/lib/docker/volumes/df4c649772a5ae65716de8ede0607d0776f8c1e2eda1d87b3ec9eaf011b43616/_data",
        "Destination": "/my_folder_2",
        "Driver": "local",
        "Mode": "",
        "RW": true,
        "Propagation": ""
    }
]

容器與容器之間的數(shù)據(jù)共享 --volumes-from

有這么一個場景,我們需要容器A和容器B實現(xiàn)數(shù)據(jù)共享,就是在A容器上修改的內(nèi)容我希望能在B容器上看到,那么這個功能應(yīng)該要怎么做到呢?那么這時候就可以使用數(shù)據(jù)卷容器功能,數(shù)據(jù)卷容器還可以實現(xiàn)多個容器之間的數(shù)據(jù)同步功能,不只是2個容器共享;

1、先創(chuàng)建第一個容器centos_1,并將/data/centos目錄掛載到宿主機上,宿主機和容器的目錄都是/data/centos;

docker run -it --name centos_1 -v /data/centos:/data/centos centos /bin/bash

2、創(chuàng)建第二個容器并且將其綁定到第一個容器;--volumes-from centos_1 選項就是將當前容器的掛載目錄綁定到 centos_1 容器上,從而實現(xiàn)了個容器的數(shù)據(jù)同步;

docker run -it --name centos_2 --volumes-from centos_1 centos /bin/bash

3、現(xiàn)在我們在創(chuàng)建第三個容器,將其綁定到第二個容器centos_2上

docker run -it --name centos_3 --volumes-from centos_2 centos /bin/bash

接下來,我們在每個容器里面的/data/centos目錄里面都創(chuàng)建一個文件

  • 在宿主機的/data/centos目錄里面創(chuàng)建了main.java文件
  • 在centos_1容器的/data/centos目錄里面創(chuàng)建了centos_1.java文件
  • 在centos_2容器的/data/centos目錄里面創(chuàng)建了centos_2.java文件
  • 在centos_3容器的/data/centos目錄里面創(chuàng)建了centos_3.java文件

最后在面四個環(huán)境中的/data/centos目錄執(zhí)行l(wèi)s命令,都能看到所有容器創(chuàng)建的文件,這樣我們就實現(xiàn)了各個容器之間的數(shù)據(jù)同步;

[root@259efdc362b4 centos]# ls
centos_1.java  centos_2.java  centos_3.java  main.java

到此這篇關(guān)于docker容器數(shù)據(jù)卷 - 具名掛載和匿名掛載的文章就介紹到這了,更多相關(guān)docker容器數(shù)據(jù)卷內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部