【Docker】如何掛載遠端主機目錄? NFS Volume

更新於 2023/08/28閱讀時間約 3 分鐘

相信Docker近幾年已經是IT與軟體開發者最常使用的一套虛擬系統了, 詳細是什麼就不多說了, 歡迎參考「📚【Docker】初探微服務時代的虛擬化技術」, 而我們使用Docker時, 有時候因為有AI的需求,需要載入別台機器的大容量模型, 但我們又不希望整個模型搬移, 浪費了兩台的空間, 這時候就我們可能會想說能不能直接將別台機器的檔案給掛載進來…, 就讓我們來實驗看看吧!

在進行操作之前有幾個元件需要先有個基本概念…

圖片來源

圖片來源

NFS

NFS (Network File System) 是一個用於在不同的計算機之間共享文件系統的網絡協議。它允許多台主機在共享網絡上訪問和共享相同的文件和目錄,就像它們本地存在一樣。這使得多台主機能夠共享數據和資源,並實現更高效的協作和數據共享。

簡單來說就是讓我們可以像存取本地目錄一樣的存取到遠端目錄。

Docker

輕量的虛擬化系統,讓我們快速啟動虛擬機,詳細請參考:

📚【Docker】初探微服務時代的虛擬化技術

怎麼做?

伺服端

安裝NFS服務

sudo apt-get update
sudo apt-get install nfs-kernel-server

編輯 /etc/exports 檔案並新增要共享的目錄,例如:

# 這裡代表將目錄共享給本地端IP
# rw代表可讀可寫
${需共享的目錄} ${欲共享的主機}(rw,sync,no_subtree_check)

重啟NFS服務

sudo service nfs-kernel-server restart

Client端

安裝NFS套件

sudo apt-get update
sudo apt-get install nfs-common

純Docker

在本地主機上創建一個目錄,用於掛載遠端目錄,例如:

sudo mkdir -p /mnt/${掛載的目錄名稱}

掛載遠端目錄到本地主機

sudo mount -t nfs REMOTE_HOST_IP:/path/on/remote/host /path/on/local/host

將遠端掛載目錄用volume的方式掛載到容器之中。

docker run -v /path/on/local/host:/path/in/container image_name

假如你是用docker compose來管理容器的話

version: '3'
services:
your_service:
image: your_image
volumes:
- nfsmount:/path/in/container
volumes:
nfsmount:
driver: local
driver_opts:
type: nfs
o: addr=${REMOTE_HOST_IP},nolock,soft,rw
device: ":/path/on/remote/host"

P.S 小技巧, 如果怎麼樣都掛載不成功, 可以先從本機目錄開始掛載起, 掛載完畢後, docker這一端就直接掛載本地目錄即可。

結語

大功告成, 透過簡單的遠端掛載, 可以讓我們有效利用空間減少硬體成本, 設計一台遠端機器效能不必太好,專門提供掛載空間, 而另一台機器則是算力強大的AI訓練機, 我們也不必頻繁的搬移模型, 只要透過掛載的方式, 那麼進行模型載入當下再進行傳輸即可, 不過也是有缺陷的, 就是初期載入較為久一點,畢竟是大模型啊…。

喜歡撰寫文章的你,不妨來了解一下:

Web3.0時代下為創作者、閱讀者打造的專屬共贏平台 — 為什麼要加入?

歡迎加入一起練習寫作,賺取知識!

avatar-img
116會員
260內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
阿Han的沙龍 的其他內容
Linux是一個非常好用、兼具效能、靈活度高的作業系統, 唯一的缺點就是學習曲線較為陡峭, 一開始難以入門, 但假若學會了, 對於我們的作業效率勢必事半功倍, 尤其是軟體工程師、IT人員…。 過程中難免遇到一些零零總總的狀況, 不過沒關係! 一項項慢慢解決即可。 前景提要 有一天,工程
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
圖片來源... 故事的起源… 圖片來源... 首先我們來查查看目標的目錄有多少檔案, 結果卻… # 查看檔案有多少量 ll *.txt|wc -l # 悲劇發生了... -bash: /usr/bin/ls: Argument list too long 那我們試著搬移檔案呢?
Tmux對於常常在使用Linux或者Mac作業系統的朋友來說是一個非常方便的工具, 可以讓我們工作效率提升, 快速切換多個終端畫面進行多工處理, 但使用時難免遇到一些狀況跟需求, 而這次分享的主要是如何複製貼上, 相信這也是大部分使用者會遇到的情境, 因此進行經驗的分享與交流。 輸入指令的快捷
熟悉使用Linux系列的開發者最常接觸的就是Terminal終端機了, 而Terminal終端機要如何有效率的運用? 這裡就來推薦一個神兵利器「tmux」, 他可以開啟我們的多工模式, 快速的游移在各個視窗之中敲打程式指令,加快工作效率。 並且背後運行著Server, 當我們進行大型任務的程式執行
前景提要 故事是這樣的,小明某一天在Linux系統上進行AI模型訓練時, 原本安心的去睡覺了, 沒想到一早起床想要看成功結果時, 竟然有一條可疑的LOG…。 kernel:[1270601.804083] watchdog: BUG: soft lockup - CPU#8 stuck fo
Linux是一個非常好用、兼具效能、靈活度高的作業系統, 唯一的缺點就是學習曲線較為陡峭, 一開始難以入門, 但假若學會了, 對於我們的作業效率勢必事半功倍, 尤其是軟體工程師、IT人員…。 過程中難免遇到一些零零總總的狀況, 不過沒關係! 一項項慢慢解決即可。 前景提要 有一天,工程
講到Docker之前就必須先談談容器化, 容器化是一種軟體開發的方法, 將程式、依賴及組態封裝在映像檔之中, 那映像檔對於大部份的人來說一定非常的熟悉, 尤其是VM這個詞, 虛擬化技術的先行者, 有了這項技術之後, 我們就可以減少一些因為環境產生的問題導致難以排查程式錯誤的狀況, 甚至可以避免因為A
圖片來源... 故事的起源… 圖片來源... 首先我們來查查看目標的目錄有多少檔案, 結果卻… # 查看檔案有多少量 ll *.txt|wc -l # 悲劇發生了... -bash: /usr/bin/ls: Argument list too long 那我們試著搬移檔案呢?
Tmux對於常常在使用Linux或者Mac作業系統的朋友來說是一個非常方便的工具, 可以讓我們工作效率提升, 快速切換多個終端畫面進行多工處理, 但使用時難免遇到一些狀況跟需求, 而這次分享的主要是如何複製貼上, 相信這也是大部分使用者會遇到的情境, 因此進行經驗的分享與交流。 輸入指令的快捷
熟悉使用Linux系列的開發者最常接觸的就是Terminal終端機了, 而Terminal終端機要如何有效率的運用? 這裡就來推薦一個神兵利器「tmux」, 他可以開啟我們的多工模式, 快速的游移在各個視窗之中敲打程式指令,加快工作效率。 並且背後運行著Server, 當我們進行大型任務的程式執行
前景提要 故事是這樣的,小明某一天在Linux系統上進行AI模型訓練時, 原本安心的去睡覺了, 沒想到一早起床想要看成功結果時, 竟然有一條可疑的LOG…。 kernel:[1270601.804083] watchdog: BUG: soft lockup - CPU#8 stuck fo
你可能也想看
Google News 追蹤
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
本篇大綱:本篇要解決的問題。用 Docker 安裝 Verdaccio。上傳 package。使用 package。刪除 package。修改 config.yml。改變 CSS。
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
Thumbnail
Mythril 是可以對Solidity 程式碼及EVM 字節碼的安全分析工具,使用符號執行等方式檢測合約,可以幫助開發和安全人員發現合約中潛在的漏洞和弱點。
Thumbnail
進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
Thumbnail
那時做總統盃黑客松時,因為要GIS 分析,資料放在 postgresql-postgis,安裝與設定上實在是麻煩。於是想說用 docker 人家建好的 postgis。果然是有,然後...
把指定DB的SQL檔案匯出到local: $ docker exec {CONTAINER} /usr/bin/mysqldump -u root --password=xxx {DATABASE} > backup.sql 只匯出db結構 add -d: $ docker exec {CONTAI
此案例是在 mac 上運行。 原稿參考 筆者簡化程序,命令如下: //---1.下載 mssql images----(做一次即可) %sudo docker pull mcr.microsoft.com/mssql/server:2017-latest //----2.將image啟動 成
Thumbnail
章節 我為什麼要用 Docker? Docker 的初步認識。(本篇文章) Docker Hello World。 Docker Services。 Docker Swarm。 Docker Stack。 Docker 的官方文件就列出下圖來說明 Docker 是什麼?
Thumbnail
本文探討了複利效應的重要性,並藉由巴菲特的投資理念,說明如何選擇穩定產生正報酬的資產及長期持有的核心理念。透過定期定額的投資方式,不僅能減少情緒影響,還能持續參與全球股市的發展。此外,文中介紹了使用國泰 Cube App 的便利性及低手續費,幫助投資者簡化投資流程,達成長期穩定增長的財務目標。
Thumbnail
本篇大綱:本篇要解決的問題。用 Docker 安裝 Verdaccio。上傳 package。使用 package。刪除 package。修改 config.yml。改變 CSS。
Thumbnail
GitLab不僅是一個源代碼管理工具,它還提供了一個統一的平台,將開發、運營和安全等流程整合在一起。通過GitLab,可以在單一的應用程序中進行專案計劃、源代碼管理、分支控制、CI/CD等操作。不論角色為何,GitLab提供了一個統一的資訊來源,讓你輕鬆地管理和追蹤整個開發流程。它消除了工具鏈的複雜
Thumbnail
Mythril 是可以對Solidity 程式碼及EVM 字節碼的安全分析工具,使用符號執行等方式檢測合約,可以幫助開發和安全人員發現合約中潛在的漏洞和弱點。
Thumbnail
進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
Thumbnail
那時做總統盃黑客松時,因為要GIS 分析,資料放在 postgresql-postgis,安裝與設定上實在是麻煩。於是想說用 docker 人家建好的 postgis。果然是有,然後...
把指定DB的SQL檔案匯出到local: $ docker exec {CONTAINER} /usr/bin/mysqldump -u root --password=xxx {DATABASE} > backup.sql 只匯出db結構 add -d: $ docker exec {CONTAI
此案例是在 mac 上運行。 原稿參考 筆者簡化程序,命令如下: //---1.下載 mssql images----(做一次即可) %sudo docker pull mcr.microsoft.com/mssql/server:2017-latest //----2.將image啟動 成
Thumbnail
章節 我為什麼要用 Docker? Docker 的初步認識。(本篇文章) Docker Hello World。 Docker Services。 Docker Swarm。 Docker Stack。 Docker 的官方文件就列出下圖來說明 Docker 是什麼?