亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2021年11月02日 14:56:31   作者:java葉新東老師  
容器數(shù)據(jù)卷就是目錄的掛載,將我們的容器的目錄掛載到宿主機(jī)上,從而實(shí)現(xiàn)打通宿主機(jī)和容器之間的文件共享功能,這篇文章主要介紹了docker容器數(shù)據(jù)卷 - 具名掛載和匿名掛載問(wèn)題,需要的朋友可以參考下

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

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

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

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

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

在這里插入圖片描述

容器和容器之間實(shí)現(xiàn)數(shù)據(jù)共享之后,就沒(méi)有主容器和子容器之分了,因?yàn)樗鼈児蚕淼臄?shù)據(jù)只有一份,是保存在宿主機(jī)上面的,刪除任何一個(gè)容器,都不會(huì)影響其他容器的數(shù)據(jù)同步;

在這里插入圖片描述

使用

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

docker run -d -v 主機(jī)目錄:容器目錄 tomcat

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

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

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

docker inspect 容器id/容器名稱

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

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

具名掛載和匿名掛載

 指定路徑掛載

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

docker run -d -v 主機(jī)目錄:容器目錄 tomcat

具名掛載

掛載到指定名稱的目錄;

# /xxx 是目錄, xxx是卷名,沒(méi)有斜桿的就是卷名
docker run -d -v 卷名:容器目錄 tomcat 

# 查找卷名所在的目錄
docker volume inspect 卷名

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

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

使用 inspect 命令查看容器信息

docker inspect my_tomcat

在打印信息中找到 Mounts 項(xiàng),其中Source的目錄就是宿主機(jī)的目錄;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": ""
    }
]

接著進(jìn)入容器

docker exec -it my_tomcat /bin/bash

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

匿名掛載

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

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

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

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

使用 inspect 命令查看容器信息

docker inspect my_tomcat_2

在打印信息中找到 Mounts 項(xiàng),其中Source的目錄就是宿主機(jī)的目錄;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

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

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

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

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

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

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

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

接下來(lái),我們?cè)诿總€(gè)容器里面的/data/centos目錄里面都創(chuàng)建一個(gè)文件

  • 在宿主機(jī)的/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文件

最后在面四個(gè)環(huán)境中的/data/centos目錄執(zhí)行l(wèi)s命令,都能看到所有容器創(chuàng)建的文件,這樣我們就實(shí)現(xiàn)了各個(gè)容器之間的數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何優(yōu)雅的給Docker配置網(wǎng)絡(luò)代理

    詳解如何優(yōu)雅的給Docker配置網(wǎng)絡(luò)代理

    有時(shí)因?yàn)榫W(wǎng)絡(luò)原因,比如公司 NAT,或其它啥的,需要使用代理,這篇文章主要為大家詳細(xì)介紹了如何優(yōu)雅的給Docker配置網(wǎng)絡(luò)代理,需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • Docker不能綁定靜態(tài)的外網(wǎng)固定ip的問(wèn)題及解決辦法

    Docker不能綁定靜態(tài)的外網(wǎng)固定ip的問(wèn)題及解決辦法

    這篇文章主要介紹了Docker不能綁定靜態(tài)的外網(wǎng)固定ip的問(wèn)題及解決辦法,需要的朋友可以參考下
    2017-01-01
  • docker啟動(dòng)rabbitmq以及使用方式詳解

    docker啟動(dòng)rabbitmq以及使用方式詳解

    RabbitMQ是一個(gè)由erlang開發(fā)的消息隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于docker啟動(dòng)rabbitmq以及使用的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 解決docker搭建gitlab時(shí)容器不停重啟的問(wèn)題

    解決docker搭建gitlab時(shí)容器不停重啟的問(wèn)題

    這篇文章主要介紹了docker搭建gitlab時(shí)容器不停重啟的問(wèn)題,當(dāng)用docker log 查看日志時(shí),發(fā)現(xiàn)問(wèn)題是在于配置文件沒(méi)有權(quán)限創(chuàng)建的問(wèn)題,本文給大家分享解決方案,感興趣的朋友一起看看吧
    2022-05-05
  • Docker?隔離與限制原理介紹

    Docker?隔離與限制原理介紹

    這篇文章主要介紹了Docker?隔離與限制原理,對(duì)于?Docker?等大多數(shù)?Linux?容器來(lái)說(shuō),Cgroups?技術(shù)是用來(lái)制造約束的主要手段,而?Namespace?技術(shù)則是用來(lái)修改進(jìn)程視圖的主要方法,下文相關(guān)介紹,需要的朋友可以參考一下
    2022-04-04
  • Docker部署nginx并修改配置文件的實(shí)現(xiàn)方法

    Docker部署nginx并修改配置文件的實(shí)現(xiàn)方法

    這篇文章主要介紹了Docker部署nginx并修改配置文件的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Docker化Spring Boot應(yīng)用的實(shí)踐

    Docker化Spring Boot應(yīng)用的實(shí)踐

    本文主要介紹了Docker化Spring Boot應(yīng)用的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • docker-compose:數(shù)據(jù)卷volumes掛載規(guī)則說(shuō)明

    docker-compose:數(shù)據(jù)卷volumes掛載規(guī)則說(shuō)明

    這篇文章主要介紹了docker-compose:數(shù)據(jù)卷volumes掛載規(guī)則說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • docker?update?命令及用法詳解

    docker?update?命令及用法詳解

    docker?update?命令動(dòng)態(tài)更新容器配置,您可以使用此命令來(lái)防止容器消耗?Docker?主機(jī)的過(guò)多資源,本文給大家介紹docker?update?命令及用法,感興趣的朋友一起看看吧
    2023-08-08
  • 詳解Docker下使用Elasticsearch可視化Kibana

    詳解Docker下使用Elasticsearch可視化Kibana

    本篇文章主要介紹了詳解Docker下使用Elasticsearch可視化Kibana,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04

最新評(píng)論