#在docker中啟動mysql之類的容器時,沒有掛載的數據...在后期怎么把數據導出外部

如果要導出 Docker 容器內的 整個目錄(包含所有文件及子目錄),可以使用以下幾種方法:


方法 1:使用 docker cp 直接復制目錄到宿主機

適用場景:容器正在運行或已停止(但未刪除)。
命令格式

docker cp <容器名或ID>:<容器內目錄路徑> <宿主機目標路徑>

示例(導出 MySQL 容器的 /var/lib/mysql 數據目錄):

docker cp mysql_container:/var/lib/mysql /host/backup/mysql_data
  • 說明
    • /host/backup/mysql_data 是宿主機上的目標路徑(需提前創建)。
    • 導出后,宿主機上會得到一個完整的 mysql_data 目錄,包含所有文件。

ps : 也可以將文件復制進容器內部
docker cp <宿主機文件或目錄路徑> <容器名或ID>:<容器內目標路徑>
示例:

復制單個文件到容器的 /tmp 目錄: docker cp /host/path/file.txt mycontainer:/tmp/

復制整個目錄到容器的 /app/data 目錄:docker cp /host/path/folder/ mycontainer:/app/data/

注意:如果目標路徑以 / 結尾(如 /app/data/),Docker 會將目錄內容復制到該路徑下。
如果不以 / 結尾(如 /app/data),Docker 會將整個目錄作為子目錄復制。


方法 2:啟動臨時容器掛載目錄并復制

適用場景:容器已刪除,但數據仍在匿名卷中。
步驟

  1. 查找容器的匿名卷
    docker volume ls  # 找到與容器關聯的匿名卷(如 `abcd1234...`)
    
  2. 啟動臨時容器掛載匿名卷并復制數據
    docker run --rm -v <匿名卷名>:/source -v /host/backup:/backup alpine \sh -c "cp -r /source /backup/mysql_data"
    
    • 示例
      docker run --rm -v abcd1234:/var/lib/mysql -v /home/user/backup:/backup alpine \sh -c "cp -r /var/lib/mysql /backup/mysql_data"
      

方法 3:通過 docker commit 創建鏡像再導出

適用場景:容器已停止或損壞,但文件系統仍可訪問。
步驟

  1. 將容器保存為新鏡像
    docker commit <容器名或ID> temp_mysql_image
    
  2. 啟動臨時容器并導出目錄
    docker run --rm -v /host/backup:/backup temp_mysql_image \sh -c "cp -r /var/lib/mysql /backup/mysql_data"
    
  3. 清理臨時鏡像
    docker rmi temp_mysql_image
    

方法 4:直接訪問 Docker 存儲驅動數據(高級)

適用場景:容器已刪除且無匿名卷,但數據仍在 Docker 存儲目錄中(如 overlay2)。
步驟

  1. 找到容器的存儲層
    docker inspect <容器名或ID> | grep "MergeDir"
    
    • 輸出類似:"MergeDir": "/var/lib/docker/overlay2/abcd1234/merged"
  2. 直接復制數據
    cp -r /var/lib/docker/overlay2/<容器ID>/merged/var/lib/mysql /host/backup/mysql_data
    
    • 注意:需 root 權限,且路徑因 Docker 存儲驅動而異(如 overlay2aufs)。

驗證導出的數據

檢查宿主機上的目錄結構和文件:

ls -l /host/backup/mysql_data
  • 如果導出的是 MySQL 數據,應能看到 .ibd.frm 等文件。

如何避免未來數據丟失?

  1. 始終掛載數據卷
    docker run -v /host/mysql_data:/var/lib/mysql mysql
    
  2. 使用命名卷(Docker 自動管理):
    docker run -v mysql_data:/var/lib/mysql mysql
    
  3. 定期備份
    docker exec mysql_container sh -c 'mysqldump -u root -p$MYSQL_ROOT_PASSWORD --all-databases > /backup.sql'
    docker cp mysql_container:/backup.sql /host/backup.sql
    

總結表格

方法適用場景命令示例
docker cp容器仍在運行或存在docker cp mysql:/var/lib/mysql /backup
匿名卷掛載容器已刪除但卷存在docker run --rm -v <卷名>:/source -v /backup:/backup alpine cp -r /source /backup
docker commit容器損壞但文件系統可讀docker commit + 臨時容器復制
直接訪問存儲層緊急恢復(需 root 權限)/var/lib/docker/overlay2/<ID>/merged 復制數據

選擇最適合你場景的方法,確保數據安全! 🔐

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

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

相關文章

Java的JDK、JRE、JVM關系與作用

Java的JDK、JRE、JVM關系與作用 java中的JDK、JRE和JVM是三個核心組件&#xff0c;各自承擔不同角色&#xff0c;且存在層級依賴關系 1. JVM&#xff08;Java Virtual Machine&#xff0c;Java虛擬機&#xff09; 是什么&#xff1a; JVM是虛擬的計算機&#xff0c;能夠執行…

C++學習之套接字并發服務器

目錄 1.昨天套接字服務器的弊端 2.如何通過多進程方式實現服務器并發 3.多進程服務器-1 4.多進程服務器-2 5.多進程版程序-回收子進程被信號中斷的處理 6.多線程版TCP服務處理思路 7.多線程并發服務器編寫 8.為什么不能把文件描述符地址傳到子線程中 9.多線程程序測試 …

機器學習新范式:Kubernetes + Kubeflow,解鎖模型訓練與部署的高效密碼

一、Kubernetes在機器學習模型訓練與部署中的作用 Kubernetes作為一個強大的容器編排平臺&#xff0c;為機器學習模型的訓練與部署提供了以下核心支持&#xff1a; 分布式訓練支持&#xff1a;Kubernetes能夠自動化部署和管理PyTorch等機器學習框架的分布式訓練任務。通過利用…

動態科技感html導航網站源碼

源碼介紹 動態科技感html導航網站源碼&#xff0c;這個設計完美呈現了科幻電影中的未來科技界面效果&#xff0c;適合展示技術類項目或作為個人作品集的入口頁面&#xff0c;自適應手機。 修改卡片中的鏈接指向你實際的HTML文件可以根據需要調整卡片內容、圖標和顏色要添加更…

數字內容智能推薦優化策略

個性化推薦算法構建路徑 構建高效數字內容體驗的推薦系統&#xff0c;需以多源數據融合為基礎框架。首先通過用戶畫像建模整合人口屬性、行為軌跡及興趣標簽&#xff0c;結合協同過濾與深度學習算法建立內容關聯矩陣。在此基礎上&#xff0c;引入上下文感知機制&#xff0c;動…

# 深度學習中的優化算法詳解

深度學習中的優化算法詳解 優化算法是深度學習的核心組成部分&#xff0c;用于最小化損失函數以更新神經網絡的參數。本文將詳細介紹深度學習中常用的優化算法&#xff0c;包括其概念、數學公式、代碼示例、實際案例以及圖解&#xff0c;幫助讀者全面理解優化算法的原理與應用…

汽車的四大工藝

文章目錄 沖壓工藝核心流程關鍵技術 焊接工藝核心流程 涂裝工藝核心流程 總裝工藝核心流程終檢與測試靜態檢查動態檢查四輪定位制動轉鼓測試淋雨測試總結 簡單總結下汽車的四大工藝&#xff08;從網上找了一張圖&#xff0c;感覺挺全面的&#xff09;。 沖壓工藝 將金屬板材通過…

Perl 發送郵件

Perl 發送郵件 概述 Perl 是一種強大的編程語言&#xff0c;廣泛應用于系統管理、網絡編程和數據分析等領域。其中&#xff0c;使用 Perl 發送郵件是一項非常實用的技能。本文將詳細介紹使用 Perl 發送郵件的方法&#xff0c;包括必要的配置、代碼示例以及注意事項。 準備工…

關于柔性數組

以前確實沒關注過這個問題&#xff0c;一直都是直接定義固定長度的數組&#xff0c;盡量減少指針的操作。 柔性數組主要是再結構體里面定義一個長度為0的數組&#xff0c;這里和定義一個指針式存在明顯去別的。定義一個指針會占用內存&#xff0c;但是定義一個長度為0的數組不會…

NOIP2011提高組.瑪雅游戲

目錄 題目算法標簽: 模擬, 搜索, d f s dfs dfs, 剪枝優化思路*詳細注釋版代碼精簡注釋版代碼 題目 185. 瑪雅游戲 算法標簽: 模擬, 搜索, d f s dfs dfs, 剪枝優化 思路 可行性剪枝 如果某個顏色的格子數量少于 3 3 3一定無解因為要求字典序最小, 因此當一個格子左邊有…

go游戲后端開發29:實現游戲內聊天

接下來&#xff0c;我們再來開發一個功能&#xff0c;這個功能相對簡單&#xff0c;就是聊天。在游戲里&#xff0c;我們會收到一個聊天請求&#xff0c;我們只需要做一個聊天推送即可。具體來說&#xff0c;就是誰發的消息&#xff0c;就推送給所有人&#xff0c;包括消息內容…

基于大數據的美團外賣數據可視化分析系統

【大數據】基于大數據的美團外賣數據可視化分析系統 &#xff08;完整系統源碼開發筆記詳細部署教程&#xff09;? 目錄 一、項目簡介二、項目界面展示三、項目視頻展示 一、項目簡介 該系統通過對海量外賣數據的深度挖掘與分析&#xff0c;能夠為美團外賣平臺提供運營決策支…

[ctfshow web入門] web32

前置知識 協議相關博客&#xff1a;https://blog.csdn.net/m0_73353130/article/details/136212770 include&#xff1a;include "filename"這是最常用的方法&#xff0c;除此之外還可以 include url&#xff0c;被包含的文件會被當做代碼執行。 data://&#xff1a…

kotlin中const 和val的區別

在 Kotlin 中&#xff0c;const 和 val 都是用來聲明常量的&#xff0c;但它們的使用場景和功能有所不同&#xff1a; 1. val: val 用于聲明只讀變量&#xff0c;也就是不可修改的變量&#xff08;類似于 Java 中的 final 變量&#xff09;。它可以是任何類型&#xff0c;包括…

【STM32】綜合練習——智能風扇系統

目錄 0 前言 1 硬件準備 2 功能介紹 3 前置配置 3.1 時鐘配置 3.2 文件配置 4 功能實現 4.1 按鍵功能 4.2 屏幕功能 4.3 調速功能 4.4 倒計時功能 4.5 搖頭功能 4.6 測距待機功能 0 前言 由于時間關系&#xff0c;暫停詳細更新&#xff0c;本文章中&#xff0c;…

任務擴展-輸入商品原價,折扣并計算促銷后的價格

1.在HbuilderX軟件中創建項目&#xff0c;把項目的路徑放在xampp中的htdocs 2.創建php文件&#xff1a;price.php,price_from.php 3.在瀏覽器中&#xff0c;運行項目效果&#xff0c;通過xampp中admin進行運行瀏覽&#xff0c;在后添加文件名稱即可&#xff0c;注意&#xff…

3D Gaussian Splatting as MCMC 與gsplat中的應用實現

3D高斯潑濺(3D Gaussian splatting)自2023年提出以后,相關研究paper井噴式增長,盡管出現了許多改進版本,但依舊面臨著諸多挑戰,例如實現照片級真實感、應對高存儲需求,而 “懸浮的高斯核” 問題就是其中之一。浮動高斯核通常由輸入圖像中的曝光或顏色不一致引發,也可能…

【軟件測試】Postman中如何搭建Mock服務

在 Postman 中&#xff0c;Mock 服務是一項非常有用的功能&#xff0c;允許你在沒有實際后端服務器的情況下模擬 API 響應。通過創建 Mock 服務&#xff0c;你可以在開發階段或測試中模擬 API 的行為&#xff0c;幫助團隊成員進行前端開發、API 測試和集成測試等工作。 Mock 服…

Spring-MVC

Spring-MVC 1.SpringMVC簡介 - SpringMVC概述 SpringMVC是一個基于Spring開發的MVC輕量級框架&#xff0c;Spring3.0后發布的組件&#xff0c;SpringMVC和Spring可以無縫整合&#xff0c;使用DispatcherServlet作為前端控制器&#xff0c;且內部提供了處理器映射器、處理器適…

關于Spring MVC中@RequestParam注解的詳細說明,用于在前后端參數名稱不一致時實現參數映射。包含代碼示例和總結表格

以下是關于Spring MVC中RequestParam注解的詳細說明&#xff0c;用于在前后端參數名稱不一致時實現參數映射。包含代碼示例和總結表格&#xff1a; 1. 核心作用 RequestParam用于顯式綁定HTTP請求參數到方法參數&#xff0c;支持以下場景&#xff1a; 參數名不一致&#xff1…