網站首頁 編程語言 正文
數據卷volume
提到這個匿名掛在和具名掛載,其實要先普及一個知識,就是什么是volumes,這個volumes就是數據卷的意思。我們docker掛載會用到這個卷。
數據卷的用處就是一個可供一個或者多個容器使用的特殊目錄,他繞過UFS就是什么聯合文件系統,提供了很多功能:
(1)數據卷可以多個容器共享或者重用
(2)對數據卷修改會立馬生效
(3)對數據卷的更新不會影響鏡像
(4)數據卷默認會一直存在,即使容器被刪除了(結合2,3點特別像nacos)
查看數據卷的命令可以用:
docker volume --help
實際上命令內容也不多如下:
實際上創建volume不用之前去創建,你掛載的時候命名,找不到他就會去根據你給的名字的創建一個新的有名字而不是一串哈希碼的名字的數據卷volume。
匿名掛載和具名掛載
在前面的數據卷volume的知識補充下,實際上匿名掛在和具命掛載就能知道了,一個是沒給數據卷名字的掛載,一個是給了指定數據卷名字的掛載。
比如接著上次的掛載,我們是指定了指定路徑的掛載,其實我們可以更簡單掛載,連宿主機的指定路徑不給,直接-v掛載docker容器的路徑就可以。如下匿名掛載安裝nginx。
# 匿名掛載 -P 大寫的P, 映射隨機端口 -v 容器內路徑 docker run -d -P --name nginx01 -v /etc/nginx nginx
實際上會返回一個哈希碼,這個就是匿名掛載的數據卷的名字,你根據這個哈希碼也可以找到對應的數據卷,對你來說是匿名的,實際人家還會給一個名字的。我們可以通過 volume ls命令來查看都有什么數據卷。
docker volume ls
那這個具名掛載就要指定數據卷,類似我們之前的指定路徑掛載,但是這個我們不適用具體的指定路徑而是數據卷的名字。
# VOLUME NAME 當前顯示為匿名數據卷, 在 -v 掛載的時候只寫了容器內的路徑,沒有寫宿主機的路徑 # 具名掛載 # 通過 -v 卷名:容器內路徑 docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
數據卷的位置
我們既然設置了具體的數據卷,且對容器進行了掛載,也知道數據卷的用處,那數據卷在哪里呢?畢竟掛載的東西都在那里,看一眼位置在哪省著被誤刪了。
實際他在docker的下面具體路徑是:
/var/lib/docker/volumes/xxxx/_data
我們可以cd到這個路徑下面看一下數據卷,像我就cd到第二個具名掛載nginx的數據卷目錄下面看一下具體結構
總結一下我們掛載的方式都有哪些:
如何確定是具名掛載還是匿名掛載, 亦或是指定路徑掛載?
-v 容器內路徑 # 匿名掛載
-v 數據卷名:/容器內路徑 # 具名掛載
-v /宿主機路徑:/容器內路徑 # 指定路徑掛載
# 通過 -v 容器內路徑: ro rw 改變讀寫權限 # ro readonly 只讀 # rw readwrite 讀寫 # 如果設置了容器權限, 容器對掛載出來的數據就有權限限定了. docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:ro nginx docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx:rw nginx # ro 只要看到ro就說明這個路徑只能通過宿主機來操作, 容器內部是無法操作
原文鏈接:https://blog.csdn.net/FeiChangWuRao/article/details/122158185
相關推薦
- 2022-10-31 Kotlin函數式編程超詳細介紹_Android
- 2022-11-03 C#事件中的兩個參數詳解(object?sender,EventArgs?e)_C#教程
- 2022-08-07 GoFrame框架gredis優雅的取值和類型轉換_Golang
- 2022-07-13 Python中常用序列數據結構
- 2022-03-14 關于跨域 Response to preflight request doesn‘t pass ac
- 2022-05-02 winform關閉窗體FormClosing事件用法介紹_C#教程
- 2022-04-06 詳解pandas中缺失數據處理的函數_python
- 2022-04-11 c#?理解csredis庫實現分布式鎖的詳細流程_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支