首頁 > 運維 > Docker > docker中volume是什麼意思

docker中volume是什麼意思

WBOY
發布: 2021-12-30 10:51:07
原創
6604 人瀏覽過

在docker中,volume的意思是“資料卷”,可以繞過預設的聯合檔案系統,以正常的檔案或目錄的形式存在於宿主機上,進而實現保存持久化資料以及共享容器間的資料。

docker中volume是什麼意思

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

docker中volume是什麼意思

#Docker Volume,通常翻譯為資料卷,用於保存持久化資料。當我們將資料庫例如MySQL運行在Docker容器中時,一般將資料透過Docker Volume保存在主機上,這樣即使刪除MySQL容器,資料仍然保存在主機上,有效保證了資料的安全性。

1. 指定Docker Volume

使用docker run命令,可以執行一個Docker容器

docker run -itd --volume /tmp/data1:/tmp/data2 --name test ubuntu bash
登入後複製
  • 基於ubuntu映像創建了一個Docker容器。

  • 容器的名稱為test,由–name選項指定。

  • Docker Volume由–volume選項指定,主機的/tmp/data1目錄與容器中的/tmp/data2目錄一一對應。

2. 查看Docker Volume

使用docker inspect指令,可以查看Docker容器的詳細資訊:

docker inspect --format= '{{json .Mounts}}' test | python -m json.tool
[
{
"Destination": "/tmp/data2",
"Mode": "",
"Propagation": "",
"RW": true,
"Source": "/tmp/data1",
"Type": "bind"
}
]
登入後複製
  • #使用–format選項,可以選擇性地查看所需的容器資訊。 .Mount為容器的Docker Volume資訊。

  • python -m json.tool可以將輸出的json字串格式化顯示。

  • Source表示主機上的目錄,即/tmp/data1。

  • Destination為容器中的目錄,即/tmp/data2。

3. 本機檔案可以同步到容器

#在本機/tmp/data1目錄中新建hello.txt檔案

touch /tmp/data1/hello.txt
ls /tmp/data1/
hello.txt
登入後複製

hello.txt檔案在容器/tmp/data2/目錄中可見

使用docker exec指令,可以在容器中執行指令。

docker exec test ls /tmp/data2/
hello.txt
登入後複製

可知,在本機目錄/tmp/data1/的修改,可以同步到容器目錄/tmp/data2/中。

4. 容器檔案可以同步到主機

在容器/tmp/data2目錄中新world.txt檔案

docker exec test touch /tmp/data2/world.txt
docker exec test ls /tmp/data2/
hello.txt
world.txt
登入後複製

world.txt檔案在主機/tmp/data1/目錄中可見

ls /tmp/data1/
hello.txt world.txt
登入後複製

可知,在容器目錄/tmp/data2/的修改,可以同步到主機目錄/tmp/data1/中。

5. 結論

Docker Volume本質上是容器與主機之間共享的目錄或文件,這樣Docker Volume中的資料可以在主機和容器中即時同步。使用Virtualbox建立虛擬機器時,也可以設定共用目錄,這與Docker Volume非常相似。

推薦學習:《docker影片教學

以上是docker中volume是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板