docker數據管理(2)

1、docker存儲資源類型

docker兩種存儲資源類型

用戶在使用 Docker 的過程當中,勢必須要查看容器內應用產生的數據,或者須要將容器內數據進行備份,甚至多個容器之間進行數據共享,這必然會涉及到容器的數據管理。
(1)Data Volume (數據卷)
(2)Data Volume Dontainers --- 數據卷容器

2、data volume------數據卷

  Data Volume 本質上是 Docker Host 文件系統中的 目錄或文件,使用相似與 Linux 下對目錄或者文件進行 mount 操做。數據卷能夠在容器之間共享
和重用,對數據卷的更改會立馬生效,對數據卷的更新不會影響鏡像,卷會一直存在,直到沒有容器使用。
   Data Volume的特色:
    1° Data Volume 是 目錄或文件,而非沒有格式化的磁盤(塊設備)

    2° 容器能夠讀寫 volume 中的數據web

    3° volume 數據能夠被永久的保存,即便使用它的容器已經銷燬。docker

  Data Volume的使用centos

    1° 運行一個容器,並建立一個數據卷掛載到容器的目錄上bash

利用 centos:7.0 的鏡像運行一個容器,並在容器內建立一個數據卷掛載到容器的 /web 目錄上
[root@localhost ~]# docker run -dti -v /web centos:latest /bin/bash
d4e002045c2bd022a826dbd2805b121dd43c41443d86eeb6515f616bf52c8549

    2° 運行一個容器,本地建立/date目錄掛載到容器的/var/log/目錄上spa

[root@localhost ~]# docker run -dti -v /data:/var/log centos:latest /bin/bash
25773c239584614e301644db01b7275377887c9bbefe8c54cf5cd6be2917ab54

3、DataVolumeDontainers --- 數據卷容器

  若是用戶須要在容器之間共享一些持續更新的數據,最簡單的方法就是使用數據卷容器,其實數據卷容器就是一個普通的容器,只不過是 專門用它提供數據卷供其餘容器掛載使用。

  DataVolumeDontainers的使用:3d

    1° 建立一個名爲 dbdata 的數據卷,並在其中建立一個數據卷掛載到 /dbdatacode

--name 參數爲容器指定名字方便記憶
[root@localhost ~]# docker run -dti -v /dbdata --name dbser centos:latest 82b264b29e56700afebaa7acec8c69309964f27dafd271454048b8b7a113720e

    2.其餘容器使用--volume-from 去掛載dbdata容器中的/dbdata數據卷blog

建立db1和db2兩個容器,並掛載/dbdata數據捲到本地
[root@localhost ~]# docker run -dti --volumes-from dbser --name db1 centos:latest 893450737adee5a2673feef72bf3239ff7b1b3cf1d284de098da405e8fe86e64 [root@localhost ~]# docker run -dti --volumes-from dbser --name db2 centos:latest aff1e64343bf339b32c81c7b1ed3baef84a724b35faa160ea0a9d3a54ae65577

此時,容器 db1 和 db2 同時掛載了同一個數據捲到本地相同 /dbdata目錄。三個容器任何一個目錄下的寫入,均可以時時同步到另外兩個。資源

[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                     PORTS                    NAMES
aff1e64343bf        centos:latest       "/bin/bash"              4 minutes ago       Up 4 minutes                                        db2
893450737ade        centos:latest       "/bin/bash"              4 minutes ago       Up 4 minutes                                        db1
82b264b29e56        centos:latest       "/bin/bash"              6 minutes ago       Up 6 minutes                                        dbser

在db2中建立jam文件,寫入0330
[root@localhost ~]# docker exec -it  aff1e64343bf /bin/bash
[root@aff1e64343bf dbdata]# echo "0330" >jam
[root@aff1e64343bf dbdata]# cat jam 
0330 在db1中查看是否存在jam文件
[root@localhost ~]# docker exec -it 893450737ade /bin/bash
[root@893450737ade /]# cd dbdata/
[root@893450737ade dbdata]# ls
jam
[root@893450737ade dbdata]# cat jam
0330 在dbser中查看jam文件是否存在
[root@localhost ~]# docker exec -it 82b264b29e56 /bin/bash
[root@82b264b29e56 /]# ls
  dbdata  
[root@82b264b29e56 /]# cd dbdata/
[root@82b264b29e56 dbdata]# ls
jam
[root@82b264b29e56 dbdata]# cat jam
0330
相關文章
相關標籤/搜索