Docker NFS volume創(chuàng)建與使用方式
1. 簡介
Docker 卷是為Docker 容器設(shè)置持久存儲的首選機制。
卷是安裝在容器內(nèi)的主機文件系統(tǒng)上的現(xiàn)有目錄。
它們可以從容器和主機系統(tǒng)訪問。
Docker 還允許用戶掛載通過 NFS 遠程文件共享系統(tǒng)共享的目錄。
為此目的創(chuàng)建的卷使用 Docker 自己的 NFS 驅(qū)動程序,無需在主機系統(tǒng)上掛載 NFS 目錄。
2. 創(chuàng)建 NFS Docker 卷
創(chuàng)建和管理 Docker 卷的最簡單方法是使用docker volume命令及其子命令。
創(chuàng)建 NFS Docker 卷的語法包括兩個選項。
- 該
--driver
選項定義了local卷驅(qū)動程序,它接受類似于mount Linux 中的命令的選項。 --opt
多次調(diào)用該選項以提供有關(guān)卷的更多詳細信息。
詳細信息包括:
- volume type
- write mode
- 遠程 NFS 服務(wù)器的 IP 或 Web 地址
- 服務(wù)器上共享目錄的路徑
docker volume create --driver local \ --opt type=nfs \ --opt o=addr=[ip-address],rw \ --opt device=:[path-to-directory] \ [volume-name]
下面的示例說明了如何創(chuàng)建一個名為nfs-volume
. 該卷包含/mnt/nfsdir
位于服務(wù)器上的目錄,具有rw
(讀/寫)權(quán)限。服務(wù)器的 IP 地址是10.240.12.70
。
列出可用的 Docker 卷。
docker volume ls
3. 在容器中掛載 NFS
要將 NFS 卷掛載到容器中,請nfs-common在主機系統(tǒng)上安裝軟件包。
sudo apt update sudo apt install nfs-common
注意:如果使用 YUM 或 RPM 進行包管理,則 NFS 客戶端包稱為nfs-utils
使用docker run 命令啟動容器。在該部分中指定 NFS 卷和安裝點--mount
。
docker run -d -it \ --name [container-name] \ --mount source=[volume-name],target=[mount-point]\ [image-name]
docker inspect [container-name]
docker exec -it [container-name] ls /mnt
4. Docker Compose 掛載 NFS 卷
如果您使用Docker Compose來管理您的容器,請通過在 YML 文件中定義來掛載 NFS 卷。
創(chuàng)建 docker-compose.yml
文件。
version: "3.2" services: [service-name]: image: [docker-image] ports: - "[port]:[port]" volumes: - type: volume source: [volume-name] target: /nfs volume: nocopy: true volumes: [volume-name]: driver_opts: type: "nfs" o: "addr=[ip-address],nolock,soft,rw" device: ":[path-to-directory]"
注意:
nolock和soft選項確保 Docker 在與 NFS 服務(wù)器的連接丟失時不會凍結(jié)( freeze)
參考:
NFS Docker Volumes: How to Create and Use
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Docker部署postgresql數(shù)據(jù)庫的問題
這篇文章主要介紹了Docker部署postgresql數(shù)據(jù)庫的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03docker部署nginx服務(wù)的實現(xiàn)步驟
本文主要介紹了docker部署nginx服務(wù)的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08MySQL docker容器數(shù)據(jù)更新統(tǒng)計shell腳本代碼方式
本文介紹了如何創(chuàng)建和配置一個腳本文件,使其能夠每隔一小時執(zhí)行一次,用于更新MySQL統(tǒng)計信息,腳本使用Docker來執(zhí)行MySQL命令,并將結(jié)果保存到文件中,文章還強調(diào)了權(quán)限設(shè)置和配置定時任務(wù)的步驟2025-01-01