溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

什么是Docker Volume?

發(fā)布時(shí)間:2020-07-21 21:10:06 來源:網(wǎng)絡(luò) 閱讀:618 作者:Fundebug 欄目:MySQL數(shù)據(jù)庫(kù)

摘要Docker Volume,通常翻譯為數(shù)據(jù)卷,用于保存持久化數(shù)據(jù)。當(dāng)我們將數(shù)據(jù)庫(kù)例如MySQL運(yùn)行在Docker容器中時(shí),一般將數(shù)據(jù)通過Docker Volume保存在主機(jī)上,這樣即使刪除MySQL容器,數(shù)據(jù)依然保存在主機(jī)上,有效保證了數(shù)據(jù)的安全性。這篇博客將通過簡(jiǎn)單的實(shí)踐幫助大家理解什么是Docker Volume。
什么是Docker Volume?
本文所有命令都是在play-with-docker的在線Docker實(shí)例上執(zhí)行,Docker版本為17.05.0-ce

1. 指定Docker Volume

使用docker run命令,可以運(yùn)行一個(gè)Docker容器

docker run -itd --volume /tmp/data1:/tmp/data2 --name test ubuntu bash
  • 基于ubuntu鏡像創(chuàng)建了一個(gè)Docker容器。
  • 容器的名稱為test,由--name選項(xiàng)指定。
  • Docker Volume--volume選項(xiàng)指定,主機(jī)的/tmp/data1目錄與容器中的/tmp/data2目錄一一對(duì)應(yīng)。

2. 查看Docker Volume

使用docker inspect命令,可以查看Docker容器的詳細(xì)信息:

docker inspect --format='{{json .Mounts}}' test | python -m json.tool
[
    {
        "Destination": "/tmp/data2",
        "Mode": "",
        "Propagation": "",
        "RW": true,
        "Source": "/tmp/data1",
        "Type": "bind"
    }
]
  • 使用--format選項(xiàng),可以選擇性查看需要的容器信息。.Mount為容器的Docker Volume信息。
  • python -m json.tool可以將輸出的json字符串格式化顯示。
  • Source表示主機(jī)上的目錄,即/tmp/data1。
  • Destination為容器中的目錄,即/tmp/data2。

3. 本機(jī)文件可以同步到容器

在本機(jī)/tmp/data1目錄中新建hello.txt文件
touch /tmp/data1/hello.txt
ls /tmp/data1/
hello.txt
hello.txt文件在容器/tmp/data2/目錄中可見

使用docker exec命令,可以在容器中執(zhí)行命令。

docker exec test ls /tmp/data2/
hello.txt

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

4. 容器文件可以同步到主機(jī)

在容器/tmp/data2目錄中新建world.txt文件
docker exec test touch /tmp/data2/world.txt
docker exec test ls /tmp/data2/
hello.txt
world.txt
world.txt文件在主機(jī)/tmp/data1/目錄中可見
ls /tmp/data1/
hello.txt  world.txt

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

5. 結(jié)論

Docker Volume本質(zhì)上是容器與主機(jī)之間共享的目錄或者文件,這樣Docker Volume中的數(shù)據(jù)可以在主機(jī)和容器中實(shí)時(shí)同步。使用Virtualbox創(chuàng)建虛擬機(jī)時(shí),也可以配置共享目錄,這與Docker Volume非常相似。

關(guān)于Fundebug

Fundebug專注于JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java實(shí)時(shí)BUG監(jiān)控。 自從2016年雙十一正式上線,F(xiàn)undebug累計(jì)處理了7億+錯(cuò)誤事件,得到了Google、360、金山軟件、百姓網(wǎng)等眾多知名用戶的認(rèn)可。歡迎免費(fèi)試用!

什么是Docker Volume?

版權(quán)聲明

轉(zhuǎn)載時(shí)請(qǐng)注明作者Fundebug以及本文地址:

https://blog.fundebug.com/2017/06/07/what-is-docker-volume/

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI