數據管理
1. 掛載本地的目錄到容器裡
docker run -tid -v /data/:/data1 aming bash
-v 用來指定掛載目錄,:前面的/data/為本地目錄,:後面的/data1/為容器裡的目錄
2. 掛載數據卷
其實我們掛載目錄的時候,可以指定容器name,如果不指定就隨機定義了。比如上面我們沒有指定,它就生成了一個名字為loving_kowalevski,這個名字可以使用命令 docker ps 看最右側一列
docker run -itd --volumes-from loving_kowalevski centos bash
這樣,我們使用aming/centos鏡像創建了新的容器,並且使用了 loving_kowalevski 容器的數據卷
自定義容器name
docker run -itd -v /data/:/mnt --name datavol aming/centos bash
3. 定義數據卷容器
有時候,我們需要多個容器之間相互共享數據,類似於linux裡面的NFS,所以就可以搭建一個專門的數據卷容器,然後其他容器直接掛載該數據卷。
首先建立數據卷容器
docker run -itd -v /data/ --name test centos bash
//注意這裡的/data/是容器的/data目錄,即test的目錄然後讓其他容器掛載該數據卷
docker run -itd --volumes-from test --name web1 centos bash
------web1的data目錄和test的data目錄是共享狀態,實際是同一個
4. 數據卷的備份與恢復
(1)備份
mkdir /vol-backup
docker run --volumes-from test -v /vol-backup/:/backup centos tar cvf /backup/data.tar /data/
說明:首先我們需要使用testvol數據卷新開一個容器,同時我們還需要把本地的/vol_data_backup/目錄掛載到該容器的/backup下,這樣在容器中/backup目錄裡面新建的文件,我們就可以直接在/vol_data_backup/目錄中看到了。 然後再把/data/目錄下面的文件打包到成data.tar文件放到/backup目錄下面
(2)恢復
思路: 先新建一個數據卷容器,再建一個新的容器並掛載該數據卷容器,然後再把tar包解包。
新建數據卷容器:docker run -itd -v /data/ --name testvol2 aming/centos bash
掛載數據卷新建容器,並解包:docker run --volumes-from testvol2 -v /vol_data_backup/:/backup aming/centos tar xvf /backup/data.tar