(九) Docker 容器數據卷(掛載)


一、容器數據卷

  docker 容器數據卷是容器在運行過程中持久化數據的一種方式,卷是目錄或文件,存在於一個或多個容器中,由docker 掛載到容器,但不屬於聯合文件系統,因此能夠繞過Union File System  提供一些用於持續存儲或共享數據的特性;卷的設計目的就是數據持久化,完全獨立於容器的生命周期,因此docker不會在容器刪除時,刪除其掛載的數據卷。

  特點:

  1. 數據卷可在容器之間共享或重用數據。
  2. 卷中的更改可以直接生效。
  3. 數據卷中的更改,不會包含在鏡像中的更新。
  4. 數據卷的生命周期一直持續到沒有容器使用它為止。

二、 容器數據卷添加

  1.  直接命令添加
    docker run -it -v /宿主機絕對路徑:/容器內目錄:權限   鏡像名

    權限: ro (容器只能查看)

    例: 啟動一個 tomcat 容器 ,在容器 webapps 中增加一份文件,並且增加修改記錄。同時宿主機也做相同操作。

      1.1  啟動Tomcat容器,執行完此命令后我們已經啟動一個tomcat 。

           並且宿主機的/home/webapps目錄和容器中的 /usr/local/tomcat/webapps 目錄相關聯,當這兩個目錄中的文件會互相同步

    docker run -d -p 8080:8080 --name tomcat-v  -v /home/webapps:/usr/local/tomcat/webapps tomcat

           1.2  在宿主機的 /home/webapps 中創建一個 hello-host.txt 文件,在容器的 /usr/local/tomcat/webapps 目錄中也創建一個 hello-tomcat.txt文件,文件內容為文件名。

           

           

          1.3 查看容器中的文件,和宿主機中的文件
           容器中:
           

           宿主機中:

           
          1.4  通過 docker inspect 命令查看掛載信息
           

    docker inspect 72f574d46676

     

  2.  docker file 添加,使用 CentOS 演示

    1. 創建一個 Dockerfile 文件

       

    2. 編輯文件內容,寫入以下信息
      FROM centos
      VOLUME ["/dataVlolumeContainer1","/dataVlolumeContainer1"]
      CMD echo "finished,-----------success"
      CMD /bin/bash

      FROM  來自於一個父類的鏡像

      VOLUME  給鏡像添加一個或多個容器卷

      CMD  控制台執行的命令

    3.  build   構建鏡像
      docker build -f /home/my-docker-file/Dockerfile -t  qizhi/centos  .

      參數:
        -f 指定dockerfile 文件,默認情況下在執行命令的目錄下尋找 Dockerfile 文件
      -t 指定鏡像名稱
      . 在當前目錄下生成鏡像

       

    4. 運行我們自己構建的鏡像,並進入鏡像,查看我們自己生成鏡像時創建的兩個文件夾

      啟動並進入容器:
      docker run -it qizhi/centos /bin/bash

       

    5. 在容器我們構建的兩個容器卷中創建一個文件,並寫入一些文字。

       

    6. 宿主機中查看我們在容器卷中創建的文件,和寫入的文件內容。
      注: 可以使用 ctrl + q + P 退出容器,讓容器進入后台運行。退回宿主機中

      使用 inspct 命令查看容器信息找到宿主機中相應的容器卷
      docker inspect 1c56ca8581ea

       

    7.  查看宿主機中的文件內容


       

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM