Docker学习(六)-----Docker数据卷
生活随笔
收集整理的這篇文章主要介紹了
Docker学习(六)-----Docker数据卷
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
十.Docker數據卷
問題:通過鏡像創建一個容器,容器一旦被銷毀,則容器內的數據將一并被刪除,但有些情況下,通過服務器上傳的圖片出會丟失。容器中的數據不是持久化狀態的.
那有沒有一種獨立于容器,提供持久化并能服務于多個容器的東西呢?
10.1什么是數據卷
數據卷:是一個可供一個或多個容器使用的特殊目錄
特性:
- 數據卷可以在容器之間共享和重用
- 對數據卷的修改會立馬生效
- 對數據卷的更新,不會影響鏡像
- 數據卷默認會一直存在,即使容器被刪除
10.2為什么需要數據卷?
這得從docker容器的文件系統說起,處于效率等一系列原因,docker容器的文件系統在宿主機上存在的方式很復雜,這會帶來下面幾個問題:
- 不能在宿主機上很方便地訪問容器中的文件
- 無法在多個容器之間共享數據
- 當容器刪除時,容器中產生的數據將丟失
為了解決這些問題,docker引入了數據卷(volume)機制。數據卷是存在于一個或多個容器中的特定文件或文件夾,這個文件或文件夾以獨立于docker文件系統的形式存在于宿主機中
數據卷的最大特點是:其生存周期獨立于容器的生存周期
使用數據卷的最佳場景
- 在多個容器之間共享數據,多個容器可以同時以只讀或者讀寫的方式掛載同一數據卷,從而共享數據卷中的數據
- 當宿主機不能保證一定存在某個目錄或一些固定路徑的文件時,使用數據卷可以規避這種限制帶來的問題
- 當你想把容器中的數據存儲在宿主機之外的地方時,比如遠程主機上或云存儲上。
10.3數據卷應用
#1 創建數據卷
docker volume create 數據卷名稱
#創建數據卷之后,默認會存放到目錄 : /var/lib/docker/volume/數據卷名稱/_data目錄下
#2查看數據卷
docker volume inspect 數據卷名稱
#3 查看全部數據卷信息
docker volume ls
#4刪除數據卷
docker volume rm 數據卷名稱
#5應用數據卷
#5.1當你映射數據卷時,如果數據卷不存在,Docker會幫你自動創建
docker run -v 數據卷名稱:容器內路徑 鏡像ID
#5.2直接指定一個路徑作為數據卷的存儲位置
docker run -v 路徑:容器內部的路徑 鏡像ID
10.4案例1
數據卷方式
創建數據卷,將項目案例放入數據卷中,啟動Tomcat。來訪問并進行查看(數據卷應用5.1)
docker volume create vol_qfnj #創建數據卷
docker run -it --name tomcat-8080 -d -p 8080:8080 -v vol_qfnj:/usr/local/tomcat/webapps/ tomcat #運行容器
路徑方式
將項目案例放入指定路徑中, -v數據卷。啟動Tomcat。來訪問并進行查看(數據卷應用5.2)
docker run -d -p 8080:8080 --name tomcat-8080 -v /opt/volumn_exam:/usr/local/tomcat/webapps tomcat
總結
以上是生活随笔為你收集整理的Docker学习(六)-----Docker数据卷的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 顺时针打印矩阵 python
- 下一篇: Docker学习(七)-----Dock