第五講 Docker數據管理

一. 數據卷

        想必大家都使用過U盤、光盤等外部存儲設備,通過將U盤等外部存儲設備掛載到系統中的一個掛載點,即可實現對這些外部設備的讀寫操作。

        數據卷即供容器使用的一個特殊目錄,和Linux系統掛在U盤等存儲設備時使用的mount命令非常類似。對數據卷的修改立即生效,並且不會影響生成的鏡像,卷會一直存在,直到沒有容器使用它。

        通常我們會掛載一個主機目錄作爲數據卷,如數據庫的存儲目錄;也會掛載一個主機文件作爲數據卷,如應用的配置文件。線面,我們分別介紹如何掛載一個目錄,以及如何掛載一個文件作爲數據卷。

1.1 掛載一個主機目錄作爲數據卷

        掛載數據卷的命令爲:docker run -itd --name centos01 -v /opt/data/centos01:/data 192.168.255.128:5000/centos;使用 -v 參數創建數據卷,並且可以使用多個-v參數爲容器創建多個數據卷。冒號之前的部分表示宿主機的真實目錄,冒號之後的部分表示容器中的虛擬目錄,即掛載點。

        對數據卷的操作,其實都是對宿主機真實目錄的操作:進入容器,在 /data 下創建 c.txt 文件,則在宿主機的真實目錄中也將創建一個 c.txt 文件(注:和數據卷相關的目錄,無論是容器還是宿主機的目錄,都將在創建和運行容器時自動生成):

         此外,創建數據卷時,還可以使用 ro 參數來指定只讀數據卷(默認爲rw,可讀可寫),容器將無法對數據卷做修改,詳情如下:

1.2 掛載一個文件作爲數據卷

注:宿主機中必須存在要掛載的文件,否則將創建目錄,並掛載相應的目錄。 

二. 數據卷容器

        數據卷實現了在在宿主機和容器之間共享數據,數據卷容器則可以幫我們實現在容器間共享數據。數據卷容器的本質也是一個普通數據卷,只不過它專門提供其它容器掛載,可以在容器之間共享和重用。使用數據卷容器,首先需要在容器內創建一個數據卷,作爲數據卷容器:

數據卷容器使用 -v 參數指定掛載容器的目錄,此處爲 centos01 容器中的 /data 目錄。進入容器 centos01 並在 /data 目錄下創建了2個文件。

        接下來,我們創建並運行2個容器 centos02 和 centos03,並分別掛載 centos01 數據卷容器:

        進入容器 centos02 ,在/data目錄下即可看到我們在 centos01 數據卷容器中創建的文件:

       進入容器 centos03,在/data目錄下即可看到我們在 centos01 數據卷容器中創建的文件,以及剛剛在 centos02 中創建的文件:

        綜上,藉助數據卷容器 centos01,實現了在容器 centos01、centos02 和 centos03 之間的數據共享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章