首頁 >運維 >Docker >停止docker容器資料是否會遺失

停止docker容器資料是否會遺失

青灯夜游
青灯夜游原創
2022-02-23 16:38:1512680瀏覽

停止docker容器,資料不會遺失。 docker容器停止並退出,會處於終止(exited)狀態,其中的資料不會遺失,可以透過「docker ps -a」查看;只有刪除掉容器,資料才會隨著容器的刪除被清空。

停止docker容器資料是否會遺失

本教學操作環境:linux5.9.8系統、docker-1.13.1版、Dell G3電腦。

停止docker容器,資料不會遺失。

docker容器停止並退出,會處於終止(exited)狀態,等同於虛擬機關機,所以是不會有資料遺失的。

此時可以透過 docker ps -a 查看,也可以透過docker start 來啟動,只有刪除容器才會清除資料。

只有當docker rm之後,刪除容器才會清除資料。

建立容器,然後把容器刪除,數據隨著容器的刪除也被刪除

如何刪除容器不刪除數據,在建立容器的時候 dockerrun-vhost_dir:containere_dir這樣可以解決你的問題!

擴展知識:當容器重新啟動後,容器運行過程中產生的日誌或資料庫資料都會被清空。

解決方法:

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

推薦學習:《docker影片教學

以上是停止docker容器資料是否會遺失的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn