Docker數據卷操作實戰

什么是數據卷

數據卷?是一個可供一個或多個容器使用的特殊目錄,它繞過 UFS,可以提供很多有用的特性:

  • 數據卷?可以在容器之間共享和享用
  • 對?數據卷?的修改立馬生效
  • 對?數據卷?的更新,不會影響鏡像
  • 數據卷?默認會一直存在,即時容器被刪除

為什么使用數據卷

  • 當創建一個容器的時候,容器運行,數據能不能持久化
  • 如果能夠持久化,數據存儲在哪?由于 docker 是隔離的,數據能不能存儲在容器外
  • 如果部署很多容器,每次都需要進入容器中進行配置嘛?能不能外部進行配置

docker 數據卷呈現給 docker 容器的一個形式就是目錄,該目錄支持多個容器間共享,修改不會影響到鏡像。使用 Docker 的數據卷,類似在系統中使用 mount 掛載一個文件系統。

數據卷掛載操作

三種掛載數據卷格式

  • 具體目錄掛載:docker run [options] -v <宿主機絕對路徑:容器內的路徑[:ro | rw]> <鏡像名>
  • 默認目錄掛載:docker run [options] -v <任意別名:容器內的路徑[:ro | rw]> <鏡像名>
  • 匿名目錄掛載:docker run [options] -v <容器內的路徑[:ro | rw]> <鏡像名>

默認目錄掛載和匿名目錄掛載的目錄默認在?/var/lib/docker/volumes/?目錄下。

具體目錄掛載?

格式:docker run [options] -v <宿主機絕對路徑 | 任意別名:容器內的路徑[:ro | rw]> <鏡像名>?

ro:代表 read-only,容器的路徑只允許讀,不允許寫。不影響宿主機的路徑可讀可寫

rw:默認值,代表可讀可寫

具名掛載

[root@k8s-master ~]# docker run -d -p 8081:8080 --name tomcat02 -v /opt/aa:/usr/local/tomcat/webapps tomcat:8.5.73

?測試容器和宿主機之間數據共享

#進入tomcat02容器
#進入容器掛載目錄
#創建text.txt文件
[root@k8s-master ~]# docker exec -it tomcat02 bash
root@83751adb2f16:/usr/local/tomcat# cd webapps/
root@83751adb2f16:/usr/local/tomcat/webapps# touch text.txt
root@83751adb2f16:/usr/local/tomcat/webapps# ls
text.txt#在宿主機查看文件
[root@k8s-master ~]# cd /opt/aa/
[root@k8s-master aa]# ls 
text.txt#在宿主機添加test2.txt
[root@k8s-master aa]# touch test2.txt
[root@k8s-master aa]# ls
test2.txt  text.txt
root@83751adb2f16:/usr/local/tomcat/webapps# ls
test2.txt  text.txt

刪除容器

[root@k8s-master ~]# docker rm -f 83751adb2f16
[root@k8s-master aa]# ls
test2.txt  text.txt

?默認目錄掛載

格式:docker run [options] -v <任意別名:容器內的路徑[:ro | rw]> <鏡像名>?

ro:代表 read-only,容器的路徑只允許讀,不允許寫。不影響宿主機的路徑可讀可寫

rw:默認值,代表可讀可寫

[root@k8s-master ~]# docker run -d -p 8080:8081 --name tomcat -v aa:/usr/local/tomcat/webapps tomcat:8.5.27
[root@k8s-master ~]# find / -name aa
/var/lib/docker/overlay2/6bd69f1cc95f446236c6a944a059082b3a79f9d8ea76bdf41e30fc7a61f4ff14/diff/usr/lib/.build-id/aa
/var/lib/docker/overlay2/53bde18c658b564d75ec2e18ff485eca8cb8056ae625613e4cecc11a8695dd5d/merged/usr/lib/.build-id/aa
/var/lib/docker/volumes/aa
/usr/share/locale/aa
/opt/aa
#在宿主機中查看[root@k8s-master aa]# cd /var/lib/docker/volumes/aa/_data/
[root@k8s-master _data]# ls
docs  examples  host-manager  manager  ROOT
#aa 代表一個數據卷名字,可以是任意,這相當于相對路徑,它會在 /var/lib/docker/volumes 下創建 aa 目錄作為數據卷。

匿名目錄掛載

沒指定名字的掛載都是匿名掛載,-v 只寫了容器內路徑,并沒寫宿主機路徑。

匿名目錄掛載的目錄是:/var/lib/docker/volumes/,它會在這個目錄生成匿名數據卷目錄。

格式:docker run [options] -v <容器內的路徑[:ro | rw]> <鏡像名>

[root@k8s-master ~]# docker run -d -p 8080:8081 --name tomcat03 -v /usr/local/tomcat/webapps tomcat:8.5.27
#沒有指定宿主機,docker會自動在/var/lib/docker/volumes生成很長的字符串
[root@k8s-master volumes]# ll
total 24
drwx-----x. 3 root root     19 Feb 26 08:03 57228ed1d063b3c66afa84f968018311f3ab5c2e3272d9c7197463981a76df25
#查看數據卷
[root@k8s-master volumes]# docker volume ls
DRIVER    VOLUME NAME
local     57228ed1d063b3c66afa84f968018311f3ab5c2e3272d9c7197463981a76df25

?讀寫權限

?啟動 tomcat04 容器,掛載到 kele 數據卷里,并賦予只讀權限

[root@k8s-master ~]# docker run -d -P --name tomcat04 -v frx:/usr/local/tomcat/webapps:ro tomcat:8.5.27
74dbfe31c4a5f47f66c3f2b807d5944d7eefc711d2b576a82fa6485ac8079d69
[root@k8s-master ~]# docker volume ls
DRIVER    VOLUME NAME
local     frx#到宿主機目錄下查看,并新建文本文件
[root@k8s-master ~]# cd /var/lib/docker/volumes/frx/_data/
[root@k8s-master _data]# touch test1.txt
[root@k8s-master _data]# ls
docs  examples  host-manager  manager  ROOT  test1.txt
#進入容器查看是否可讀,不允許寫
[root@k8s-master ~]# docker  exec -it tomcat04 /bin/bash
root@74dbfe31c4a5:/usr/local/tomcat# cd webapps/
root@74dbfe31c4a5:/usr/local/tomcat/webapps# ls
ROOT  docs  examples  host-manager  manager  test1.txt
root@74dbfe31c4a5:/usr/local/tomcat/webapps# touch test2.txt
touch: cannot touch 'test2.txt': Read-only file system

?數據卷操作命令

#數據卷查看
docker volume ls 
#查看frx數據卷的具體信息
[root@k8s-master ~]# docker volume inspect frx#數據卷創建
docker volume create Myvolume#數據卷刪除
docker  volume rm -f Myvolume

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896435.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896435.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896435.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kafka stream對比flink

Kafka Streams 和 Apache Flink 雖然都支持實時計算&#xff0c;但它們的定位、架構和適用場景存在顯著差異。選擇哪一個取決于具體的需求、場景和技術棧。以下是兩者的核心區別和適用場景分析&#xff1a; 1. 定位與架構差異 Kafka Streams 定位&#xff1a;輕量級庫&#x…

二叉樹的先序、中序和后序 【刷題反思】

1. 已知中序和后序&#xff0c;求前序 1.1 題目 題目描述&#xff1a;給一棵二叉樹的中序和后序排列&#xff0c;求它的先序排列。 輸入描述&#xff1a;共兩行&#xff0c;均為大寫字母組成的字符串&#xff0c;分別表示一棵二叉樹的中序和后序 輸入&#xff1a;BADC BDCA…

華宇TAS應用中間件與統信最新版本操作系統完成兼容互認證

近日&#xff0c;華宇TAS應用中間件與統信服務器操作系統經過技術迭代與優化&#xff0c;在原先UOS V20的基礎上完成了UOS V25的兼容互認證。此次認證涵蓋了眾多主流的國產CPU平臺&#xff0c;包括鯤鵬920、飛騰FT2000/64、飛騰騰云S2500等。 經過嚴格測試&#xff0c;雙方產品…

Docker 搭建 Redis 數據庫

Docker 搭建 Redis 數據庫 前言一、準備工作二、創建 Redis 容器的目錄結構三、啟動 Redis 容器1. 通過 redis.conf 配置文件設置密碼2. 通過 Docker 命令中的 requirepass 參數設置密碼 四、Host 網絡模式與 Port 映射模式五、檢查 Redis 容器狀態六、訪問 Redis 服務總結 前言…

35. Spring Boot 2.1.3.RELEASE 應用監控【監控信息可視化】

在 Spring Boot 2.1.3.RELEASE 中實現監控信息可視化可以通過多種方式&#xff0c;下面為你詳細介紹使用 Spring Boot Actuator 結合 Grafana 和 Prometheus 以及使用 Spring Boot Admin 這兩種常見方法。 方法一&#xff1a;Spring Boot Actuator Grafana Prometheus 1. 添…

服務器間遷移conda環境

注意&#xff1a;可使用遷移miniconda文件 or 遷移yaml文件兩種方式&#xff0c;推薦前者&#xff0c;基本無bug&#xff01; 一、遷移miniconda文件&#xff1a; 拷貝舊機器的miniconda文件文件到新機器: 內網拷貝&#xff1a;scp -r mazhf192.168.1.233:~/miniconda3 ~/ 外…

在VSCode中安裝jupyter跑.ipynb格式文件

個人用vs用的較多&#xff0c;不習慣在瀏覽器單獨打開jupyter&#xff0c;看著不舒服&#xff0c;直接上教程。 1、在你的環境中pip install ipykernel 2、在vscode的插件中安裝jupyter擴展 3、安裝擴展后&#xff0c;打開一個ipynb文件&#xff0c;并且在頁面右上角配置內核 …

20250223下載并制作RTX2080Ti顯卡的顯存的測試工具mats

20250223下載并制作RTX2080Ti顯卡的顯存的測試工具mats 2025/2/23 23:23 緣起&#xff1a;我使用X99的主板&#xff0c;使用二手的RTX2080Ti顯卡【顯存22GB版本&#xff0c;準備學習AI的】 但是半年后發現看大碼率的視頻容易花屏&#xff0c;最初以為是WIN10經常更換顯卡/來回更…

WordPress R+L Carrier Edition sql注入漏洞復現(CVE-2024-13481)(附腳本)

免責申明: 本文所描述的漏洞及其復現步驟僅供網絡安全研究與教育目的使用。任何人不得將本文提供的信息用于非法目的或未經授權的系統測試。作者不對任何由于使用本文信息而導致的直接或間接損害承擔責任。如涉及侵權,請及時與我們聯系,我們將盡快處理并刪除相關內容。 0x0…

深入了解 NAT 模式:網絡地址轉換的奧秘

深入了解 NAT 模式&#xff1a;網絡地址轉換的奧秘 在計算機網絡的世界里&#xff0c;NAT 模式&#xff08;Network Address Translation&#xff0c;網絡地址轉換&#xff09;扮演著至關重要的角色。它就像是網絡中的翻譯官&#xff0c;在不同網絡地址之間進行轉換&#xff0…

Git版本控制系統---本地操作(萬字詳解!)

目錄 git基本配置 認識工作區、暫存區、版本庫 添加文件--情況一&#xff1a; 添加文件-情況二: 修改文件: 版本回退&#xff1a; git基本配置 1.初始化本地倉庫&#xff0c;注意&#xff1a;一定要在一個目錄下進行&#xff0c;一般都是新建一個文件夾&#xff0c;在文件…

Jupyter Notebook切換虛擬環境(Kernel管理)

我們在使用Jupyter Notebook的時候&#xff0c;打開文件發現只有一個Python3(ipykernel)&#xff0c;我們自己在conda中創建的虛擬環境為什么沒有顯示出來&#xff0c;今天我就來和大家一起討論一下&#xff01; 在 Jupyter Notebook 中&#xff0c;kernel 是執行代碼的核心。管…

【網絡安全】常見的web攻擊

1、SQL注入攻擊 定義&#xff1a; 攻擊者在HTTP請求中注入惡意的SQL代碼&#xff0c;當服務器利用參數構建SQL語句的時候&#xff0c;惡意的SQL代碼被一起構建,并在數據庫中執行。 示例&#xff1a; 用戶登錄&#xff1a; 輸入用戶名xx&#xff0c; 密碼 or 1 …

Java基礎關鍵_012_包裝類

目 錄 一、基本數據類型對應的包裝類 1.概覽 2.說明 二、包裝類 1.最大值與最小值 2.構造方法 3.常用方法&#xff08;Integer為例&#xff09; &#xff08;1&#xff09;compare(int x, int y) &#xff08;2&#xff09;max(int a, int b) 和 min(int a, int b) &…

MacPorts 創建自定義 Portfile 安裝 RoadRunner

Portfile 放 ~/Ports/net/roadrunner-server 下&#xff1a; # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fencutf-8:fttcl:et:sw4:ts4:sts4PortSystem 1.0name roadrunner-server version 202…

【Java 面試 八股文】JVM 虛擬機篇

JVM 虛擬機篇 1. JVM組成1.1 JVM由那些部分組成&#xff0c;運行流程是什么&#xff1f;1.2 什么是程序計數器&#xff1f;1.3 你能給我詳細的介紹Java堆嗎?1.4 Java 虛擬機棧1.4.1 Java Virtual machine Stacks (java 虛擬機棧)1.4.2 棧和堆的區別1.4.3 垃圾回收是否涉及棧內…

MFC學習筆記-1

一、編輯框和按鈕 //.h文件private:CString str;//給窗口類加了一個變量&#xff08;定義一個成員變量&#xff09;&#xff0c;關聯到IDC_EDIT1中&#xff08;要在實現中關聯&#xff0c;源文件文件夾中&#xff09;CString str2;//接收button2&#xff0c;和IDC_EDIT2綁定 p…

QT 引入Quazip和Zlib源碼工程到項目中,無需編譯成庫,跨平臺,加密壓縮,帶有壓縮進度

前言 最近在做項目時遇到一個需求&#xff0c;需要將升級的文件壓縮成zip&#xff0c;再進行傳輸&#xff1b; 通過網絡調研&#xff0c;有許多方式可以實現&#xff0c;例如QT私有模塊的ZipReader、QZipWriter&#xff1b;或者第三方庫zlib或者libzip或者quazip等&#xff1…

[oAuth2授權]Web前端+NodeCoze API Web后端程序+Coze授權服務器工作流程架構流程圖詳解

嗯,用戶之前已經了解了如何使用React和Node.js結合Coze API實現OAuth2授權,現在他們具體想實現的是在Web應用中,當用戶點擊一個按鈕(比如“和Bot對話”)時,觸發授權流程,重定向到Coze的授權服務器獲取code。用戶還提供了一個具體的cURL請求示例,展示了如何通過302重定向…

Fiddler在Windows下抓包Https

文章目錄 1.Fiddler Classic 配置2.配置瀏覽器代理自動代理手動配置瀏覽器代理 3.抓取移動端 HTTPS 流量&#xff08;可選&#xff09;解決抓取 HTTPS 失敗問題1.Fiddler證書過期了 默認情況下&#xff0c;Fiddler 無法直接解密 HTTPS 流量。需要開啟 HTTPS 解密&#xff1a; 1…