這篇文章給大家介紹如何在Docker容器中掛載NFS共享目錄,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
創(chuàng)新互聯(lián)是一家專業(yè)從事成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司。作為專業(yè)網(wǎng)站制作公司,創(chuàng)新互聯(lián)依托的技術(shù)實(shí)力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗(yàn),為您提供專業(yè)的成都網(wǎng)站建設(shè)、全網(wǎng)營銷推廣及網(wǎng)站設(shè)計(jì)開發(fā)服務(wù)!Dockerfile內(nèi)容如下:
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/*
構(gòu)建鏡像,執(zhí)行以下命令后會(huì)成功生成名字為fengbingchun/ubuntu:16.04的鏡像:
docker build -t fengbingchun/ubuntu:16.04 .
通過掛載主機(jī)目錄,新建容器test,執(zhí)行以下命令中的一條,推薦使用第一條:
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
在容器內(nèi)依次執(zhí)行如下命令進(jìn)行掛載,假設(shè)nfs服務(wù)器ip為10.107.2.1,共享目錄為shared:
/etc/init.d/rpcbind start mount -t nfs 10.107.2.1:/shared /mnt/nfs
創(chuàng)建軟鏈接,并將cmake可執(zhí)行文件路徑加入環(huán)境變量,依次執(zhí)行如下命令:
ln -s /mnt/nfs/Ubuntu-16.04/ /usr/local/toolchains echo "export PATH=/usr/local/toolchains/bin:$PATH" >> /etc/profile source /etc/profile
因此創(chuàng)建鏡像時(shí)并沒有安裝cmake,執(zhí)行source命令后,執(zhí)行cmake --version可看到cmake版本相關(guān)信息,如下圖所示:
然后在容器內(nèi),cd到/home/fengbingchun目錄下,clone Messy_Test執(zhí)行以下命令:
git clone https://github.com/fengbingchun/Messy_Test
然后cd到Messy_Test/prj/linux_cmake_CppBaseTest目錄下,依次執(zhí)行如下命令:
./build.sh ./build/CppBaseTest
執(zhí)行結(jié)果如下圖所示,說明通過Dockerfile構(gòu)建的鏡像,并在容器內(nèi)掛載NFS共享目錄后,通過共享目錄中的cmake可正常編譯執(zhí)行Messy_Test:
在容器內(nèi)也可查看NFS服務(wù)器共享了哪些目錄,執(zhí)行以下命令:
showmount -e 10.107.2.1
保存鏡像fengbingchun/ubuntu:16.04到tar包,執(zhí)行以下命令:
docker save -o ubuntu_16.04.tar fengbingchun/ubuntu:16.04
將ubuntu_16.04.tar拷貝到ubuntu系統(tǒng)下,從tar包加載一個(gè)鏡像,執(zhí)行以下命令:
docker load -i ubuntu_16.04.tar
然后執(zhí)行windows上類似的操作,在新創(chuàng)建的容器test中編譯、執(zhí)行Messy_Test,依次執(zhí)行如下命令:
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
執(zhí)行結(jié)果如下圖所示:說明在Windows上生成的鏡像打包后,在Ubuntu上load后可正常使用:
注意:
(1).在ubuntu上,創(chuàng)建容器時(shí)要使用"--privileged=true",否則執(zhí)行掛載時(shí)會(huì)報(bào)"mount.nfs: access denied by server while mounting 10.107.2.1:/shared"的錯(cuò)誤;
(2).在Windows上有時(shí)在容器中會(huì)有卡死的現(xiàn)象,可刪除此容器,然后再新建容器.
關(guān)于如何在Docker容器中掛載NFS共享目錄就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
分享名稱:如何在Docker容器中掛載NFS共享目錄-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://www.rwnh.cn/article34/igspe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、域名注冊(cè)、品牌網(wǎng)站建設(shè)、網(wǎng)站制作、電子商務(wù)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容