1. <i id="s6b2k"><small id="s6b2k"></small></i>
    <b id="s6b2k"><bdo id="s6b2k"></bdo></b>
  2. <wbr id="s6b2k"></wbr>

    Docker容器中掛載NFS共享目錄的實現_docker

    來源:腳本之家  責任編輯:小易  

    之前在http://www.yu113.com/article/205922.htm 介紹過使用Dockerfile構建ubuntu 16.04鏡像,并在容器中編譯執行Messy_Test項目.這里介紹下如何在容器中掛載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版本相關信息,如下圖所示:

    然后在容器內,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:

    在容器內也可查看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后可正常使用:

    注意:

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

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

    到此這篇關于Docker容器中掛載NFS共享目錄的實現的文章就介紹到這了,更多相關Docker掛載NFS共享目錄內容請搜索真格學網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持真格學網!

    您可能感興趣的文章:windows宿主機和docker容器設置掛載共享文件夾的步驟詳解Docker掛載本地目錄及實現文件共享的方法

  3. 本文相關:
  4. docker私有倉庫registry部署的實現
  5. 解決docker run時候啟動兩個占有不同端口的問題
  6. 使用docker創建集成服務lnmp環境
  7. docker教程之ubuntu 安裝 docker詳細介紹
  8. docker-compose的安裝和使用詳解
  9. 詳解docker無法正常啟動的原因及解決辦法
  10. docker基礎知識之掛載本地目錄的方法
  11. docker centos7的系統上安裝部署以及基礎教程
  12. linux docker運行springboot項目的步驟詳解
  13. 基于alpine用dockerfile創建的爬蟲scrapy鏡像的實現
  14. docker 可以映射 nfs 的本地目錄到容器內部進行共享么
  15. docker 容器怎樣掛載目錄
  16. 如何使用數據卷在宿主機和docker容器之間共享文件
  17. docker怎么指定容器卷掛載到某個目錄
  18. docker把宿主機根目錄下的所有目錄掛載到容器為什...
  19. docker鏡像如何實現共享
  20. 如何使用數據卷在宿主機和docker容器之間共享
  21. docker中oracle數據庫數據持久化的問題,如果將本...
  22. 怎么把本地的文件夾掛載到docker container中去
  23. docker for windows 給容器內掛載的目錄賦權限,怎...
  24. 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全dockerhyper-vvmwarevirtualboxxenserverkvmqemuopenvzxencloudstackopenstack云計算技術云其它首頁服務器云和虛擬化dockerwindows宿主機和docker容器設置掛載共享文件夾的步驟詳解docker掛載本地目錄及實現文件共享的方法docker私有倉庫registry部署的實現解決docker run時候啟動兩個占有不同端口的問題使用docker創建集成服務lnmp環境docker教程之ubuntu 安裝 docker詳細介紹docker-compose的安裝和使用詳解詳解docker無法正常啟動的原因及解決辦法docker基礎知識之掛載本地目錄的方法docker centos7的系統上安裝部署以及基礎教程linux docker運行springboot項目的步驟詳解基于alpine用dockerfile創建的爬蟲scrapy鏡像的實現docker 給運行中的容器設置端口映docker獲取鏡像報錯docker: errodocker.service啟動失敗:unit ndocker 清理命令集錦淺談docker-compose網絡設置之neubuntu14.04+docker的安裝及使用docker容器如何優雅的終止詳解docker容器訪問宿主機網絡的方法詳解如何使用docker部署一個web項詳解docker國內鏡像拉取和鏡像加docker 運行多個springboot的詳細教程linux centos下使用腳本安裝docker的方法使用ssh連接docker服務器的方法使用docker run的選項以覆蓋dockerfile中使用docker開發python web 應用docker中容器的網絡配置常用命令詳解詳解docker+jenkins+gitlab+django應用部兩小時入門docker教程實踐docker使用的個人學習總結docker四種網絡類型原理實例解析
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.yu113.com All Rights Reserved
    战天txt全集下载