大家在使用Docker部署web應用程式或mysql資料庫時,會發現當容器重新啟動後,容器運行過程中產生的日誌或資料庫資料都會被清空。
解決方法:
docker可以透過掛載宿主機磁碟目錄,來永久儲存資料。
1. 建立容器時執行Docker Volume
使用docker run 指令,可以執行一個Docker容器,使用映像ubuntu/nginx,掛載本機目錄/tmp/source到容器目錄/tmp /destination
docker run -itd --volume /tmp/source:/tmp/destination --name test ubuntu/nginx bash
基於ubuntu/nginx映像建立了一個Docker容器。
指定容器的名稱為test,由 ––name 選項指定。
Docker Volume 由 ––volume (可以簡寫為-v)選項指定,主機的 /tmp/source 目錄與容器中的 /tmp/destination 目錄一一對應。
2. 查看Docker Volume
使用docker inspect 指令,可以查看Docker容器的詳細資料:
docker inspect --format='{{json .Mounts}} 'test | python -m json.tool[{“Destination”: “/tmp/destination”,“Mode”: “”,“Propagation”: “”,“RW”: true,“Source”: “/tmp/ source”,“Type”: “bind”}]
使用––format 選項,可以選擇性地檢視所需的容器資訊。 .Mount 為容器的 Docker Volume 資訊。
python -m json.tool 可以將輸出的json字串格式化顯示。
Source 表示主機上的目錄,即 /tmp/source 。
Destination 為容器中的目錄,即 /tmp/destination。
3. 本機檔案可以同步到容器
在本機/tmp/source目錄中新建hello.txt檔案
touch /tmp/source/hello.txtls /tmp/source/hello.txt
hello.txt檔案在容器/tmp/destination/目錄中可見
#使用docker exec 指令,可以在容器中執行指令。
docker exectest ls /tmp/destination/hello.txt
所以在宿主機對目錄 /tmp/source/ 的修改,可以同步到容器目錄 /tmp/destination/ 中。
4. 容器檔案可以同步到宿主機
在容器/tmp/destination目錄中新建world.txt檔案
docker exec test touch /tmp/destination/world .txtdocker exec test ls /tmp/destination/hello.txtworld.txt
world.txt檔案在宿主主機/tmp/source/目錄中可見
ls /tmp/source/hello. txt world.txt
更多相關教學課程,請追蹤PHP中文網docker教學欄位。
以上是docker重啟後資料是否會遺失的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Docker監控的核心在於收集和分析容器的運行數據,主要包括CPU使用率、內存使用、網絡流量和磁盤I/O等指標。通過使用Prometheus、Grafana和cAdvisor等工具,可以實現對容器的全面監控和性能優化。

DockerSwarm可用於構建可擴展和高可用性的容器集群。 1)初始化Swarm集群使用dockerswarminit。 2)加入Swarm集群使用dockerswarmjoin--token:。 3)創建服務使用dockerservicecreate--namemy-nginx--replicas3nginx。 4)部署複雜服務使用dockerstackdeploy-cdocker-compose.ymlmyapp。

如何利用Docker和Kubernetes進行企業應用的容器編排?通過以下步驟實現:創建Docker鏡像並推送到DockerHub。在Kubernetes中創建Deployment和Service以部署應用。使用Ingress管理外部訪問。應用性能優化和最佳實踐,如多階段構建和資源限制。

Docker常見問題可以通過以下步驟診斷和解決:1.查看容器狀態和日誌,2.檢查網絡配置,3.確保卷掛載正確。通過這些方法,可以快速定位並修復Docker中的問題,提升系統穩定性和性能。

Docker是DevOps工程師必備的技能。 1.Docker是開源的容器化平台,通過將應用程序及其依賴打包到容器中,實現隔離和可移植性。 2.Docker的工作原理包括命名空間、控制組和聯合文件系統。 3.基本用法包括創建、運行和管理容器。 4.高級用法包括使用DockerCompose管理多容器應用。 5.常見錯誤有容器無法啟動、端口映射問題和數據持久化問題,調試技巧包括查看日誌、進入容器和查看詳細信息。 6.性能優化和最佳實踐包括鏡像優化、資源限制、網絡優化和使用Dockerfile的最佳實踐。

Docker安全強化的方法包括:1.使用--cap-drop參數限制Linux能力,2.創建只讀容器,3.設置SELinux標籤。這些策略通過減少漏洞暴露面和限制攻擊者能力來保護容器安全。

DockerVolumes可確保數據在容器重啟、刪除或遷移時依然安全。 1.創建Volume:dockervolumecreatemydata。 2.運行容器並掛載Volume:dockerrun-it-vmydata:/app/dataubuntubash。 3.高級用法包括數據共享和備份。

Docker提供了三種主要的網絡模式:橋接網絡、主機網絡和覆蓋網絡。 1.橋接網絡適用於單主機上的容器間通信,通過虛擬網橋實現。 2.主機網絡適用於需要高性能網絡的場景,容器直接使用主機的網絡棧。 3.覆蓋網絡適用於多主機的DockerSwarm集群,通過虛擬網絡層實現跨主機通信。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Dreamweaver CS6
視覺化網頁開發工具