首頁 > 軟體

一文帶你瞭解Docker資料卷

2021-05-20 19:00:15

Docker資料卷是什麼

Docker容器產生的資料,如果不通過docker commit生成新的映象,使得資料做為映象的一部分儲存下來, 那麼當容器刪除後,資料自然也就沒有了,為了能儲存資料在docker中我們使用卷。

一句話:有點類似我們Redis裡面的rdb和aof檔案,也就是我們所說的持久化用的

資料卷的特點

卷的設計目的就是資料的持久化,完全獨立於容器的生存週期,因此Docker不會在容器刪除時刪除其掛載的資料卷

特點:

資料卷可在容器之間共享或重用資料卷中的更改可以直接生效資料卷中的更改不會包含在映象的更新中資料卷的生命週期一直持續到沒有容器使用它為止容器內新增

直接命令新增docker run -it -v /宿主機絕對路徑目錄:/容器內目錄 映象名

DockerFile新增可在Dockerfile中使用VOLUME指令來給映象新增一個或多個數據卷

Dockerfile

是什麼

Dockerfile是用來構建Docker映象的構建檔案,是由一系列命令和參數構成的指令碼。

構建三步驟

編寫Dockerfile檔案docker builddocker runDockerFile構建過程解析

Dockerfile內容基礎知識

每條保留字指令都必須為大寫字母且後面要跟隨至少一個參數指令按照從上到下,順序執行#表示註釋每條指令都會創建一個新的映象層,並對映象進行提交Docker執行Dockerfile的大致流程

從基礎映象運行一個容器執行一條指令並對容器作出修改執行類似docker commit的操作提交一個新的映象層docker再基於剛提交的映象運行一個新容器執行dockerfile中的下一條指令直到所有指令都執行完成

DockerFile體系結構

FROM(基礎映象,當前新映象是基於哪個映象的)MAINTAINER(映象維護者的姓名和郵箱地址)RUN(容器構建時需要運行的命令)EXPOSE(當前容器對外暴露出的埠)WORKDIR(指定在創建容器後,終端預設登陸的進來工作目錄,一個落腳點)ENV(用來在構建映象過程中設定環境變數)ADD(將宿主機目錄下的檔案拷貝進映象且ADD命令會自動處理URL和解壓tar壓縮包)COPY(類似ADD,拷貝檔案和目錄到映象中。將從構建上下文目錄中 <源路徑> 的檔案/目錄複製到新的一層的映象內的 <目標路徑> 位置)VOLUME(容器資料卷,用於資料儲存和持久化工作)CMD(指定一個容器啟動時要運行的命令)ENTRYPOINT(ENTRYPOINT 的目的和 CMD 一樣,都是在指定容器啟動程式及參數)ONBUILD(當構建一個被繼承的Dockerfile時運行命令,父映象在被子繼承後父映象的onbuild被觸發)


IT145.com E-mail:sddin#qq.com