目錄
- 前言
- 1、數(shù)據(jù)卷概念
- 2、數(shù)據(jù)卷作用
- 3、配置數(shù)據(jù)卷
- 4、多容器進行數(shù)據(jù)交換
- 5、數(shù)據(jù)卷容器
- 6、數(shù)據(jù)卷小結(jié)
- 總結(jié)
前言
本文是 Docker 容器的數(shù)據(jù)卷使用的簡單教程,介紹了什么是數(shù)據(jù)卷、數(shù)據(jù)卷概念、以及如何使用數(shù)據(jù)卷等。
1、數(shù)據(jù)卷概念
數(shù)據(jù)卷簡單來講就是一個目錄,它是由Docker daemon 掛載到容器中的,因此數(shù)據(jù)卷并不屬于聯(lián)合文件系統(tǒng),也就是說數(shù)據(jù)卷里面的內(nèi)容不會因為容器的刪除而丟失。Docker啟動后,容器內(nèi)的文件和宿主機是隔離的,如果不使用docker commit 操作提交容器為鏡像把數(shù)據(jù)保存下來,數(shù)據(jù)就會因為容器的刪除而丟失。
- 數(shù)據(jù)卷是宿主機中的一個目錄或文件
- 當容器目錄和數(shù)據(jù)卷目錄綁定后,對方的修改會立即同步
- 一個數(shù)據(jù)卷可以被多個容器同時掛載
- 一個容器也可以被掛載多個數(shù)據(jù)卷
2、數(shù)據(jù)卷作用
docker默認容器關(guān)閉后數(shù)據(jù)就沒了,如果不通過docker commit生成新的進行數(shù)據(jù)就會丟失。數(shù)據(jù)卷的作用就是將docker容器運行產(chǎn)生的數(shù)據(jù)持久化。
- 容器數(shù)據(jù)持久化
- 外部機器和容器間接通信
- 容器之間數(shù)據(jù)交換
3、配置數(shù)據(jù)卷
創(chuàng)建啟動容器時,使用 –v 參數(shù) 設(shè)置數(shù)據(jù)卷
docker run ... –v 宿主機目錄(文件):容器內(nèi)目錄(文件) ... ? #docker run -it --name=c1 -v /root/data:/root/data_container couchbase/centos7-systemd /bin/bash
容器的目錄data_container
本機的目錄data
1)此時在宿主機(本機)data目錄下創(chuàng)建文件
touch test.txt
2)在容器查看data_container,發(fā)現(xiàn)同步過來了。
注意事項:
- 目錄必須是絕對路徑
- 如果目錄不存在,會自動創(chuàng)建
- 可以掛載多個數(shù)據(jù)卷
4、多容器進行數(shù)據(jù)交換
- 多個容器掛載同一個數(shù)據(jù)卷
- 數(shù)據(jù)卷容器
5、數(shù)據(jù)卷容器
1)創(chuàng)建啟動c3數(shù)據(jù)卷容器,使用 –v 參數(shù) 設(shè)置數(shù)據(jù)卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash
2)創(chuàng)建啟動 c1 c2 容器,使用 –-volumes-from 參數(shù) 設(shè)置數(shù)據(jù)卷
docker run –it --name=c1 --volumes-from c3 centos:7 /bin/bash ? docker run –it --name=c2 --volumes-from c3 centos:7 /bin/bash
6、數(shù)據(jù)卷小結(jié)
1)數(shù)據(jù)卷概念
- 宿主機的一個目錄或文件
2)數(shù)據(jù)卷作用
- 容器數(shù)據(jù)持久化
- 客戶端和容器數(shù)據(jù)交換
- 容器間數(shù)據(jù)交換
3)數(shù)據(jù)卷容器
- 創(chuàng)建一個容器,掛載一個目錄,讓其他容器繼承自該容器( –volume-from )
- 通過簡單方式實現(xiàn)數(shù)據(jù)卷配置
總結(jié)
數(shù)據(jù)卷可以在容器之間共享和重用;對數(shù)據(jù)卷的修改會立馬生效;對數(shù)據(jù)卷的更新,不會影響到鏡像;數(shù)據(jù)卷默認會一直存在,即使容器被刪除。數(shù)據(jù)卷簡單來講就是一個目錄,它是由Docker daemon 掛載到容器中的,因此數(shù)據(jù)卷并不屬于聯(lián)合文件系統(tǒng)。最后,送上一句自己喜歡的話:“沒有風浪,便沒有勇敢的弄潮兒;沒有荊棘,也沒有不屈的開拓者。”。