中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Docker容器中掛載NFS共享目錄

發布時間:2021-02-19 15:25:21 來源:億速云 閱讀:1645 作者:Leah 欄目:開發技術

這篇文章給大家介紹如何在Docker容器中掛載NFS共享目錄,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Dockerfile內容如下:

FROM ubuntu:16.04
LABEL maintainer="FengBingchun fengbingchun@163.com" \
   version="1.0" \
   description="dockerfile test"
RUN dep_items='git g++-5 nfs-common make' \
  && apt-get update \
  && apt-get install -y $dep_items \
  && ln -s /usr/bin/g++-5 /usr/bin/g++ \
  && ln -s /usr/bin/gcc-5 /usr/bin/gcc \
  && mkdir -p /mnt/nfs \
  && rm -rf /var/lib/apt/lists/*

構建鏡像,執行以下命令后會成功生成名字為fengbingchun/ubuntu:16.04的鏡像:

docker build -t fengbingchun/ubuntu:16.04 .

通過掛載主機目錄,新建容器test,執行以下命令中的一條,推薦使用第一條:

docker run --cap-add sys_admin -it -P --name test --mount type=bind,source=e:\GitCode\docker,target=/home/fengbingchun fengbingchun/ubuntu:16.04 /bin/bash
docker run --privileged=true -it -P --name test --mount type=bind,source=e:\GitCode\docker,target=/home/fengbingchun fengbingchun/ubuntu:16.04 /bin/bash

在容器內依次執行如下命令進行掛載,假設nfs服務器ip為10.107.2.1,共享目錄為shared:

/etc/init.d/rpcbind start
mount -t nfs 10.107.2.1:/shared /mnt/nfs

創建軟鏈接,并將cmake可執行文件路徑加入環境變量,依次執行如下命令:

ln -s /mnt/nfs/Ubuntu-16.04/ /usr/local/toolchains
echo "export PATH=/usr/local/toolchains/bin:$PATH" >> /etc/profile
source /etc/profile

因此創建鏡像時并沒有安裝cmake,執行source命令后,執行cmake --version可看到cmake版本相關信息,如下圖所示:

如何在Docker容器中掛載NFS共享目錄

然后在容器內,cd到/home/fengbingchun目錄下,clone Messy_Test執行以下命令:

git clone https://github.com/fengbingchun/Messy_Test

然后cd到Messy_Test/prj/linux_cmake_CppBaseTest目錄下,依次執行如下命令:

./build.sh
./build/CppBaseTest

執行結果如下圖所示,說明通過Dockerfile構建的鏡像,并在容器內掛載NFS共享目錄后,通過共享目錄中的cmake可正常編譯執行Messy_Test:

如何在Docker容器中掛載NFS共享目錄

在容器內也可查看NFS服務器共享了哪些目錄,執行以下命令:

showmount -e 10.107.2.1

保存鏡像fengbingchun/ubuntu:16.04到tar包,執行以下命令:

docker save -o ubuntu_16.04.tar fengbingchun/ubuntu:16.04

將ubuntu_16.04.tar拷貝到ubuntu系統下,從tar包加載一個鏡像,執行以下命令:

docker load -i ubuntu_16.04.tar

然后執行windows上類似的操作,在新創建的容器test中編譯、執行Messy_Test,依次執行如下命令:

docker run --privileged=true -it -P --name test --mount type=bind,source=/home/xxxx/Disk/GitHub/docker,target=/home/fengbingchun fengbingchun/ubuntu:16.04 /bin/bash
/etc/init.d/rpcbind start
mount -t nfs 10.107.2.1:/shared /mnt/nfs
ln -s /mnt/nfs/Ubuntu-16.04/ /usr/local/toolchains
echo "export PATH=/usr/local/toolchains/bin:$PATH" >> /etc/profile
source /etc/profile
cd /home/fengbingchun/
git clone https://github.com/fengbingchun/Messy_Test
cd Messy_Test/prj/linux_cmake_CppBaseTest/
./build.sh
./build/CppBaseTest

執行結果如下圖所示:說明在Windows上生成的鏡像打包后,在Ubuntu上load后可正常使用:

如何在Docker容器中掛載NFS共享目錄

注意:

(1).在ubuntu上,創建容器時要使用"--privileged=true",否則執行掛載時會報"mount.nfs: access denied by server while mounting 10.107.2.1:/shared"的錯誤;

(2).在Windows上有時在容器中會有卡死的現象,可刪除此容器,然后再新建容器.

關于如何在Docker容器中掛載NFS共享目錄就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

连江县| 无棣县| 保山市| 墨竹工卡县| 彩票| 棋牌| 全椒县| 凤冈县| 民和| 广昌县| 二手房| 新丰县| 香格里拉县| 六安市| 天等县| 鄂温| 兴海县| 铁岭市| 治县。| 东光县| 上虞市| 姜堰市| 松原市| 古交市| 江都市| 突泉县| 梁平县| 北碚区| 岱山县| 承德市| 淅川县| 启东市| 平乐县| 娱乐| 商丘市| 平凉市| 邹平县| 博客| 滨海县| 余干县| 团风县|