網站首頁 編程語言 正文
Docker容器數據卷技術介紹
一、卷技術介紹
現在我們知道docker的理念就是把應用和環境打包成鏡像,方便我們去運行容器。
但是現在有一個問題,比如我容器里的mysql存了好多的數據,那萬一容器被刪除,數據是不是就沒了?這顯然不合適。
于是,一個新的需求產生了:將數據存儲在容器之外的地方,比如本地。對應的解決方案就是卷技術了,通過它,將容器中產生的數據同步到本地,讓容器之間可以共享數據。
卷技術,說白了就是目錄的掛載,將容器內的目錄掛載到linux上。如圖所示,將容器里的/usr/mysql
掛載到外部linux下的/home/mysql
。現在不僅mysql容器可以使用,其他的2個容器同樣可以使用,實現了數據共享。
所以,卷技術的關鍵詞:持久化、同步、數據共享。
二、使用數據卷
使用命令-v
。
docker run -it -v 主機目錄:容器目錄
現在我要啟動centos鏡像,并且把容器內的/home
目錄,掛載到主機的/home/test/
目錄下:
docker run -it -v /home/test:/home centos /bin/bash
可以看到啟動容器成功,為了方便,我多開一個窗口。
這時候用docker inspect
命令來查看容器,可以看到掛載情況。
docker inspect 370ff4e87083
找到Mounts
,可以看到具體綁定明細。
現在容器內的/home
目錄下是空的,對應的主機的/home/test/
下也是空的。
接著,我在容器內的/home下新建個文件new.txt
,然后查看主機下的/home
目錄,發現文件已經同步。
反向操作
上面是從容器內到容器外,現在反過來,從主機目錄下再增加一個文件second.txt
,然后再到容器內查看,也是同步的。
停止容器
如果容器停止了,我在外面把文件都刪掉了,當再次啟動容器后進去查看,也是同步的。
重啟容器,進入容器的/home下查看,也是空的。
原文鏈接:https://blog.csdn.net/wessonlan/article/details/124813065
相關推薦
- 2022-10-31 關于命令行執行Python腳本的傳參方式_python
- 2023-07-17 在Linux下禁用、添加|修改Swap分區(虛擬內存)教程
- 2023-07-29 el-tree 只展示選中值
- 2023-03-02 Kotlin關于協程是什么的探究_Android
- 2024-07-18 【SpringBoot】SpringCache輕松啟用Redis緩存
- 2022-07-14 Android實現ViewFlipper圖片動畫滑動_Android
- 2022-07-20 NDArray?與?numpy.ndarray?互相轉換方式_python
- 2023-03-23 Python中win32com模塊的使用_python
- 最近更新
-
- 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同步修改后的遠程分支