欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker實現(xiàn)掛載的方式匯總

 更新時間:2023年11月10日 14:56:33   作者:way_more  
Docker實現(xiàn)掛載有多種方式,下面給大家分享Docker實現(xiàn)掛載常見方式,感興趣的朋友跟隨小編一起看看吧

docker掛載

默認情況下,在Docker容器內(nèi)創(chuàng)建的所有文件都只能在容器內(nèi)部使用。容器刪除后,數(shù)據(jù)也跟著刪除,雖然通常我們不會刪除容器,但是一旦宿主機發(fā)生故障,我們重新創(chuàng)建容器恢復(fù)服務(wù),那么之前容器創(chuàng)建的文件就會丟失。所以我們需要將容器數(shù)據(jù)寫到宿主機內(nèi),方便我們數(shù)據(jù)的存儲、修改和共享。

那么這時候就需要使用到我們的掛載技術(shù)了,掛載技術(shù)就是將容器的文件路徑掛載到宿主機的文件系統(tǒng)路徑上,這樣在容器更改文件可以同步到宿主機,在宿主機更改文件也可以同步到容器,而且我們多個容器可以掛載到一個宿主機的文件目錄,實現(xiàn)數(shù)據(jù)共享

實現(xiàn)掛載的方式

Docker實現(xiàn)掛載有多種方式,下面是我了解到的一些方式

綁定掛載

綁定掛載(Bind Mounts):綁定掛載是將主機上的文件或目錄掛載到容器中,是在允許容器時使用-v參數(shù)來指定掛載的目錄,下面是運行指令

docker run -v /host/path:/container/path image_name

注:/host/path:為宿主機地址,/container/path為容器地址

容器啟動起來以后,我們可以通過docker inspect 容器id命令查看是否掛載成功,如果出現(xiàn)“Mounts”屬性則掛載成功。

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

數(shù)據(jù)卷掛載就是將 Docker 數(shù)據(jù)卷掛載到容器中。數(shù)據(jù)卷是一個可供一個或多個容器使用的特殊目錄,用于存儲數(shù)據(jù)和共享數(shù)據(jù)。它獨立于容器的生命周期,容器可以在掛載點讀取和寫入數(shù)據(jù),就像使用普通目錄一樣。

一般數(shù)據(jù)卷的都放在docker的工作目錄/var/lib/docker/volume/下

數(shù)據(jù)卷分為兩種:一種是具名數(shù)據(jù)卷,一種是匿名數(shù)據(jù)卷。具名是自定義了數(shù)據(jù)卷文件夾的名字,匿名的話就是docker會分配一個默認的名字

下面創(chuàng)建一個具名數(shù)據(jù)卷

# 創(chuàng)建數(shù)據(jù)卷
docker volume create myvolume 
注:myvolume為數(shù)據(jù)卷的名稱
# 查看所有數(shù)據(jù)卷
docker volume ls
# 查看指定數(shù)據(jù)卷Mountpoint屬性,可以看到數(shù)據(jù)卷的具體位置
docker volume inspect myvolume
[
    {
        "CreatedAt": "2023-11-08T14:44:09+08:00",
        "Driver": "local",
        "Labels": null,
        "Mountpoint": "/var/lib/docker/volumes/myvolume/_data",
        "Name": "myvolume",
        "Options": null,
        "Scope": "local"
    }
]
創(chuàng)建了具名數(shù)據(jù)卷之后,我們就可以使用這個數(shù)據(jù)卷來綁定容器了,綁定容器有以下兩種方式
# 使用-v參數(shù)
docker run -d  -v myvolume:/app/logs -p 8000:8000 image_name
# 使用--mount參數(shù)(可指定更詳細參數(shù))
docker run  --mount source=myvolume,target=/app/logs -p 8000:8000 image_name
注:image_name為鏡像名

下面為匿名掛載

匿名掛載我們不需要先創(chuàng)建數(shù)據(jù)卷,只需要在運行時使用-v參數(shù),并指定容器路徑,那么docker久會為該路徑創(chuàng)建一個隨機名稱的文件夾進行掛載

#下面命令就會為/etc/nginx生成一個數(shù)據(jù)卷,我們可以使用docker volume ls查看
docker run -d -P --name nginx01 -v /etc/nginx nginx

我們掛載的時候還可以指定容器對于數(shù)據(jù)卷的讀寫權(quán)限

:ro 容器只能讀
:rw 容器可讀可寫

不指定的話默認用:rw

#下面設(shè)置為只讀
docker run -d -P --name nginx01 -v /etc/nginx:ro nginx

DockerFile 定義數(shù)據(jù)卷

我們在使用DockerFile進行創(chuàng)建鏡像的時候,就可以創(chuàng)建數(shù)據(jù)卷

DockerFile創(chuàng)建數(shù)據(jù)卷的指令是:VOLUME

注:VOLUME 生成的都是匿名數(shù)據(jù)卷,不能指定主機目錄

語法:

VOLUME ["鏡像內(nèi)部的路徑1","鏡像內(nèi)部的路徑2","鏡像內(nèi)部的路徑3",.......]

實例:

FROM centos
VOLUME ["/data1","/data2"]

使用這個DockerFile創(chuàng)建鏡像后,就會自動創(chuàng)建兩個數(shù)據(jù)卷掛載點

對于匿名數(shù)據(jù)卷,我們可以使用下面步驟來查詢?nèi)萜鲗?yīng)的數(shù)據(jù)卷

1、先查詢運行中的容器,獲取到容器ID(container_id)

docker ps -a

2、再使用docker inspect查詢?nèi)萜鞯脑敿毿畔?,找到Mounts就是數(shù)據(jù)卷的信息了

docker inspect container_id

臨時文件系統(tǒng)(tmpfs)掛載掛載

臨時文件系統(tǒng)掛載允許將臨時文件系統(tǒng)掛載到容器的指定路徑。與文件掛載和數(shù)據(jù)卷掛載不同,臨時文件系統(tǒng)掛載僅在容器的生命周期內(nèi)存在,并且不會對主機文件系統(tǒng)產(chǎn)生影響。可以通過在運行容器時使用 --tmpfs 參數(shù)來指定臨時文件系統(tǒng)掛載

實例:

docker run --tmpfs /container/path image_name```

到此這篇關(guān)于Docker實現(xiàn)掛載的N種方式的文章就介紹到這了,更多相關(guān)docker掛載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何恢復(fù)docker容器數(shù)據(jù)

    如何恢復(fù)docker容器數(shù)據(jù)

    項目測試環(huán)境數(shù)據(jù)庫數(shù)據(jù)丟失, 我們可以利用數(shù)據(jù)卷可以進行恢復(fù)數(shù)據(jù),下面我來記錄一下,希望此文章對各位有所幫助
    2021-05-05
  • docker的鏡像存放地址在哪里

    docker的鏡像存放地址在哪里

    Docker鏡像(Image)是用于創(chuàng)建?Docker?容器的模板,下面這篇文章主要給大家介紹了關(guān)于docker的鏡像存放地址在哪里的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • docker鏡像消失的問題及臨時解決方案

    docker鏡像消失的問題及臨時解決方案

    本文主要介紹了docker鏡像消失的問題及臨時解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • 如何清理無用的Docker鏡像和容器

    如何清理無用的Docker鏡像和容器

    文章介紹了如何清理無用的Docker鏡像和容器,以及如何使用DockerSwarm和Kubernetes進行容器編排和擴展,感興趣的朋友一起看看吧
    2025-02-02
  • docker?screen命令的使用

    docker?screen命令的使用

    本文主要介紹了docker?screen命令的使用,Screen命令則提供了強大的多會話管理功能,讓我們可以實時監(jiān)控和操作容器,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • docker部署MongoDB數(shù)據(jù)庫的實現(xiàn)步驟

    docker部署MongoDB數(shù)據(jù)庫的實現(xiàn)步驟

    Docker可以提供一個輕量級、可移植的容器化環(huán)境,使得MongoDB的部署變得更加簡單和靈活,本文主要介紹了docker部署MongoDB數(shù)據(jù)庫的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • 一文詳解如何修改Docker的默認存儲路徑

    一文詳解如何修改Docker的默認存儲路徑

    這篇文章主要介紹了關(guān)于如何修改Docker的默認存儲路徑的相關(guān)資料,默認安裝的情況下,會使用 /var/lib/docker/ 目錄作為存儲目錄,用以存放拉取的鏡像和創(chuàng)建的容器等,這個路徑是系統(tǒng)存儲目錄,一般空間會比較小,需要的朋友可以參考下
    2023-08-08
  • docker-compose ports和expose的區(qū)別詳解

    docker-compose ports和expose的區(qū)別詳解

    這篇文章主要介紹了docker-compose ports和expose的區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Docker容器定時備份數(shù)據(jù)庫并發(fā)送到指定郵箱(設(shè)計思路)

    Docker容器定時備份數(shù)據(jù)庫并發(fā)送到指定郵箱(設(shè)計思路)

    這篇文章主要介紹了Docker容器定時備份數(shù)據(jù)庫并發(fā)送到指定郵箱,文中寫了一下shell腳本,邏輯也很簡單,當前時間與啟動時間相同時,則調(diào)用sendmail函數(shù)發(fā)送郵件,具體腳本跟隨小編一起看看吧
    2022-01-01
  • Docker 清理環(huán)境操作

    Docker 清理環(huán)境操作

    這篇文章主要介紹了Docker 清理環(huán)境操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論