Docker NFS volume創(chuàng)建與使用方式
1. 簡介
Docker 卷是為Docker 容器設置持久存儲的首選機制。
卷是安裝在容器內(nèi)的主機文件系統(tǒng)上的現(xiàn)有目錄。
它們可以從容器和主機系統(tǒng)訪問。
Docker 還允許用戶掛載通過 NFS 遠程文件共享系統(tǒng)共享的目錄。
為此目的創(chuàng)建的卷使用 Docker 自己的 NFS 驅動程序,無需在主機系統(tǒng)上掛載 NFS 目錄。
2. 創(chuàng)建 NFS Docker 卷
創(chuàng)建和管理 Docker 卷的最簡單方法是使用docker volume命令及其子命令。
創(chuàng)建 NFS Docker 卷的語法包括兩個選項。
- 該
--driver
選項定義了local卷驅動程序,它接受類似于mount Linux 中的命令的選項。 --opt
多次調用該選項以提供有關卷的更多詳細信息。
詳細信息包括:
- volume type
- write mode
- 遠程 NFS 服務器的 IP 或 Web 地址
- 服務器上共享目錄的路徑
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
位于服務器上的目錄,具有rw
(讀/寫)權限。服務器的 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 服務器的連接丟失時不會凍結( freeze)
參考:
NFS Docker Volumes: How to Create and Use
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
關于Docker部署postgresql數(shù)據(jù)庫的問題
這篇文章主要介紹了Docker部署postgresql數(shù)據(jù)庫的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03MySQL docker容器數(shù)據(jù)更新統(tǒng)計shell腳本代碼方式
本文介紹了如何創(chuàng)建和配置一個腳本文件,使其能夠每隔一小時執(zhí)行一次,用于更新MySQL統(tǒng)計信息,腳本使用Docker來執(zhí)行MySQL命令,并將結果保存到文件中,文章還強調了權限設置和配置定時任務的步驟2025-01-01