Docker下的資料持久化操作
阿新 • • 發佈:2019-01-08
環境:centos7 64bit
為了解決資料持久化的問題,Docker提供了卷和卷容器機制。 容器中管理資料有兩種主要方式:- 資料卷;
- 資料卷容器
-
資料卷是一個可供容器使用的特殊目錄,它繞過檔案系統,可以提供很多有用的特性:
- 資料卷可以在容器之見共享和重用
- 對資料卷的修改會立馬生效
- 對資料卷的更新不會影響映象
- 卷會一直存在,直到沒有容器使用
- 資料卷的使用,類似於Linux下對目錄或者檔案進行mount操作.
1.直接在容器中建立一個數據卷
docker run -it -v /dockertest centos /bin/bash
2.掛載主機目錄作為資料卷
[[email protected] _0_9_centos ~]# docker run -it -v /test:/dockertest centos /bin/bash
作用:
將主機中的/test目錄檔案掛載到容器中的dockertest檔案中
容器中的目錄結構,新生成了dockertest這個目錄
(但貌似主機中如果不存在這個目錄的話,也不會報錯...)
3.資料卷容器
首先,這個玩意也是一個容器,其他的容器可以通過它達到資料共享,資料遷移的目的。
[[email protected]_0_9_centos ~]# docker run -it -v /test --name dbdata1 centos
建立一個名叫dbdata1的容器,將資料卷掛載到/test下,
接下來建立兩個新的容器,並且
[[email protected]_0_9_centos test]# docker run -it --volumes-from dbdata1 --name db1 centos
[[email protected]_0_9_centos test]# docker run -it --volumes-from dbdata1 --name db2 centos
目錄結構如下:
也可以看到test資料夾
然後在
db2中做如下的修改:
[[email protected] /]# cd test
[[email protected] test]# touch simple
[ [email protected] test]# ls
檢視db1容器,
在db2中作出的改動可以直接在db1中看到。