亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 1、Docker 數據管理
  • 2、數據卷(Data Volumes)
  • 數據卷相關操作:
    • 2.1.創建數據卷
    • 2.2.查看所有的數據卷
    • 2.3.查看指定數據卷的詳細信息(顯示一個JSON格式的數據)
    • 2.4.刪除一個volume
    • 2.5.啟動一個掛載數據卷的容器
  • 3、數據卷容器
    • 數據卷容器相關操作:
      • 3.1.新建數據卷容器
      • 3.2.用容器db1測試數據卷容器是否可用
      • 3.3.備份數據卷容器
      • 3.4.還原數據卷容器
    • 4、dockerfile
      • 5、dockerfile基本結構
        • 6、docker使用Dockerfile創建jdk容器
          • 啟動虛擬機,進入CentOS
            • 6.1 創建文件夾上傳jdk的安裝包,和在同級目錄下編寫Dockerfile文件
            • 6.2 編寫 Dockerfile 文件
            • 6.3 執行Dockerfile文件,初次依賴鏡像的時候會下載相應鏡像
            • 6.4 查看鏡像
            • 6.5 創建并啟動容器
            • 6.6 檢查是否有問題
          • 7、dockerfile實踐經驗

            1、Docker 數據管理

            在生產環境中使用 Docker ,往往需要對數據進行持久化,或者需要在多個容器之間進行數據共享,這必然涉及容器的數據管理操作

            容器中的管理數據主要有兩種方式:
            數據卷 Data Volumes 容器內數據直接映射到本地主機環境;
            數據卷容器(Data Volume Containers 使用特定容器維護數據卷

            注1:上章節還介紹過cp命令在宿主機和docker容器之間復制文件
                    docker cp 宿主機絕對路徑  容器id:路徑

            2、數據卷(Data Volumes)

            數據卷是一個可供一個或多個容器使用的特殊目錄,它將主機操作系統目錄直接映射進容器,它可以提供很多有用的特性:
               1.數據卷 可以在容器之間共享和重用
               2.對數據卷的修改會立馬生效
               3.對數據卷的更新,不會影響鏡像
               4.數據卷 默認會一直存在,即使容器被刪除

            數據卷(Data Volumes)及dockefile詳解

             

            數據卷相關操作:

            2.1.創建數據卷

            docker volume create my-vol

             此時,數據卷默認會放到/var/lib/docker/volumes路徑下,會發現所新建的數據卷位置,查看命令如下:

             ## 參數可以為數字“1”,字母L:大小寫均可,但效果不一樣 
                 ls -1 /var/lib/docker/volumes

            2.2.查看所有的數據卷

            docker volume ls

            2.3.查看指定數據卷的詳細信息(顯示一個JSON格式的數據)

            docker volume inspect my-vol 

            2.4.刪除一個volume

            docker volume rm my-vol

            注1:數據卷 是被設計用來持久化數據的,它的生命周期獨立于容器,Docker不會在容器被刪除后自動刪除數據卷,并且也不存在垃圾回收這樣的機制來處理沒有任何容器引用的數據卷,無主的數據卷可能會占據很多空間,所以要及時刪除

            ## 掛載數據卷,最好是通過run而非create/start創建啟動容器
            ## create/start命令創建啟動容器后,再掛載數據卷相當麻煩,要修改很多配置文件,但并非不可以

            2.5.啟動一個掛載數據卷的容器

            ## demo1
                 docker run -d \
                   -it \
                   --name tomcat01 \
                   --mount source=my-vol,target=/webapp \
                   centos:latest
             ## demo2
                 docker run -d \
                   -it \
                   --name tomcat02 \
                   --mount type=bind,source=/root/webapp02,target=/root/webapp02 \
                   centos:latest        

            注1:linux命令結尾加斜杠有什么用
                      加了“\&;意為將最后的回車換行給注釋了,系統理解為命令還沒有結束,因而是繼續等待用戶進行輸入,直到讀到結束符,如回車

             注2:source=my-vol,target=/webapp
                      my-vol為要掛載的數據卷,如果數據卷不存在,docker會自動創建
                      /webapp為容器上目錄,如果目錄不存在, Docker會自動創建   

             注3:mount選項高級用法
                      –mount選項的type參數支持三種類型的數據卷
                      –mount標志:由多個名值對組成,逗號分隔,每個鍵值由 <key> = <value> 元組組成 
                      1.type=volume普通數據卷(默認即這種類型),映射到主機/var/lib/docker/volumes路徑下;   
                        –mount type=volume,source=my-vol,target=/webapp
                        注:type的默認值,提前先創建數據卷
                      2.bind:綁定數據卷,映射到主機指定路徑下;
                        –mount type=bind,source=/webapp,destination=/webapp2
                      3.tmpfs :臨時數據卷,只存在于內存中
                        docker run -d \
                          -it \
                          –name tmptest \
                          –mount type=tmpfs,destination=/app \
                          nginx:latest

            3、數據卷容器

            如果用戶需要在多個容器之間共享一些持續更新的數據,最簡單的方式是使用數據卷容器。數據卷容器也是一個容器,但是它的目的是專門提供數據卷給其他容器掛載

            數據卷(Data Volumes)及dockefile詳解

              

            數據卷容器相關操作:

            3.1.新建數據卷容器

            docker run -it -d --name db_data -v /db_data centos:latest

            3.2.用容器db1測試數據卷容器是否可用

            docker run -it -d --name db1 --volumes-from db_data centos:latest
                 docker exec -it db1 bash
                 cd db_data
                 ## 使用echo命令向db1_test.txt中寫入內容
                 echo "db1 beifen test" > db1_test.txt

            3.3.備份數據卷容器

            docker run --rm --name beifen --volumes-from db_data -v /zking:/container_backup centos:latest tar cvf /container_backup/backup.tar /db_data

            新建1個名為beifen的(暫時性,之后會刪除)容器,由于volumes-from了db_data,所以在根目錄下也會生成1個db_data文件夾,經過執行命令后,將db_data文件下的數據壓縮在container_backup文件夾下,并存在宿主機上的host_backup_path下

               注:
               1)run:create+start
               2)–rm:創建之后刪除容器
               3)–name:容器名稱
               4)–volumes-from:來自于哪個數據卷容器的容器NAME
               5)-v:給容器掛載存儲卷,掛載到容器的某個目錄

            3.4.還原數據卷容器

            1.新建一個數據卷容器db_data2
                   docker run -it -d –name db_data2 -v /db_data centos:latest

            2.docker run –rm –name huanyuan –volumes-from db_data2 -v ~/host_backup:/container_backup centos:latest tar xvf /container_backup/backup.tar -C /db_data
                   新建1個名為huanyuan的(暫時性,之后會刪除)容器,由于volumes-from了db_data2,所以在根目錄下也會生成1個db_data文件夾,宿主機上的host_backup_path下的壓縮數據映射到了container_backup文件夾下,并解壓至db_data文件夾下     

            4、dockerfile

            dockerfile 是一個文本格式的配置文件, 用戶可以使用 Dockerfile 來快速創建自定義的鏡像,另外,使用Dockerfile去構建鏡像好比使用pom去構建maven項目一樣,有異曲同工之妙

            數據卷(Data Volumes)及dockefile詳解

              

            5、dockerfile基本結構

            dockerfile基本結構
               Dockerfile 由一行行命令語句組成, 并且支持以#開頭的注釋行,一般而言, Dockerfile 主體內容分為四部分:
               基礎鏡像信息、 維護者信息、 鏡像操作指令和容器啟動時執行指令。

               部分                                   命令
               基礎鏡像信息                     FROM
               維護者信息                        MAINTAINER
               鏡像操作指令                    RUN、(COPY/ADD)、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等
               容器啟動時執行指令          CMD、ENTRYPOINT

            6、docker使用Dockerfile創建jdk容器

            啟動虛擬機,進入CentOS

            6.1 創建文件夾上傳jdk的安裝包,和在同級目錄下編寫Dockerfile文件

                  $ mkdir –p /zking/java
                  # 注意d是大寫
                  $ touch Dockerfile 

                  將jdk-8u221-linux-x64.tar.gz上傳到Linux或者使用cp命令復制一個本地已經有的jdk-8u221-linux-x64.tar.gz文件到指定目錄中
                  $ cp /lky/tools/jdk-8u221-linux-x64.tar.gz /zking/java

            6.2 編寫 Dockerfile 文件

                  6.2.1 vi Dockerfile進入編輯模式
                  :wq  #退出并保存文件
                  :q!  #退出不保存文件
                  按i鍵進入insert編輯模式

                  6.2.2 指定基礎鏡像,并且必須是第一條指令
                  FROM centos:latest

                  6.2.3 指明該鏡像的作者和其電子郵件

                  MAINTAINER zs "[email protected]"

                  6.2.4 在構建鏡像時,指定鏡像的工作目錄,之后的命令都是基于此工作目錄,如果不存在,則會創建目錄

                  WORKDIR /zking/java

                  6.2.5 一個復制命令,把jdk安裝文件復制到鏡像中,語法:ADD <src>… <dest>,注意:jdk*.tar.gz使用的是相對路徑

                  ADD jdk-8u151-linux-x64.tar.gz /zking/java/
                  注:如果在宿主機的當前路徑下,文件直接使用相對路徑即可;

                  6.2.6 配置環境變量

                  ENV JAVA_HOME=/zking/java/jdk1.8.0_151
                  ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
                  ENV PATH=$JAVA_HOME/bin:$PATH
                  #容器啟動時需要執行的命令
                  #CMD ["java","-version"]

            6.3 執行Dockerfile文件,初次依賴鏡像的時候會下載相應鏡像

                  docker build -t jdk8:v1.0 .
                  注1:-t  jdk8:v1.0  給新構建的鏡像取名為 jdk8, 并設定版本為v1.0
                  注2:注意最后有個點,代表使用當前路徑的 Dockerfile 進行構建 

            6.4 查看鏡像

                  docker images

            6.5 創建并啟動容器

                  docker run -it jdk8:v1.0 /bin/bash

            6.6 檢查是否有問題

                  javac

            7、dockerfile實踐經驗

            1. 精簡鏡像用途:盡量讓每個鏡像的用途都比較集中單一,避免構造大而復雜、多功能的鏡像
            2. 選用合適的基礎鏡像:容器的核心是應用,選擇過大的父鏡像(如CentOS系統鏡像)會造成最終生成應用鏡像的臃腫,推薦選用瘦身過的應用鏡像或者較為小巧的系統鏡像(alpine)

            附錄一:SecureCRT上傳文件到Linux服務器上
            1. 輸入rz命令,看是否已經安裝了lrzsz,如果沒有安裝則執行 apt install lrzsz -y 命令進行安裝。
            2. 安裝成功后,輸入rpm命令確認是否正確安裝
            3. 使用 rz -y命令進行文件上傳,此時會彈出上傳的窗口
            還可以通過sz下載文件

            分享到:
            標簽:DataVolumes dockefile 數據 服務器 詳解
            用戶無頭像

            網友整理

            注冊時間:

            網站:5 個   小程序:0 個  文章:12 篇

            • 51998

              網站

            • 12

              小程序

            • 1030137

              文章

            • 747

              會員

            趕快注冊賬號,推廣您的網站吧!
            最新入駐小程序

            數獨大挑戰2018-06-03

            數獨一種數學游戲,玩家需要根據9

            答題星2018-06-03

            您可以通過答題星輕松地創建試卷

            全階人生考試2018-06-03

            各種考試題,題庫,初中,高中,大學四六

            運動步數有氧達人2018-06-03

            記錄運動步數,積累氧氣值。還可偷

            每日養生app2018-06-03

            每日養生,天天健康

            體育訓練成績評定2018-06-03

            通用課目體育訓練成績評定