1. 程式人生 > >Docker下的資料持久化操作

Docker下的資料持久化操作

環境: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中看到。