Docker基礎學習之數據管理

發布時間:2017-03-11 21:07 來源:互聯網 當前欄目:web技術類

前言

docker容器中管理數據主要有兩種方式,數據卷(Data Volumes)和數據卷容器(Data Volume Containers),下面我們詳細介紹Docker中的數據管理,有需要的一起來學習學習吧。

數據卷

數據卷是一個可供容器使用的特殊目錄,它繞過文件系統,可以提供很多有用的特性:

      數據卷可以在容器之間共享和重用;

      對數據卷的修改會立馬有效;

      對數據卷的更新,不會影響鏡像;

      卷會一直存在,直到沒有容器使用。

數據卷的使用,類似于Linux下對目錄或文件進行mount操作。

掛載本地的目錄到容器里

[[email protected] ~]# docker imagesREPOSITORY     TAG     IMAGE ID   CREATED    VIRTUAL SIZEregistry      latest    5c929a8b587a  29 hours ago  33.27 MBgenesis_centos    latest    85bc3a58f134  5 days ago   277.6 MB192.168.1.179:5000/busybox latest    9967c5ad88de  12 days ago   1.093 MBbusybox      latest    9967c5ad88de  12 days ago   1.093 MBcentos-6-x86     latest    8fca9486a39b  13 days ago   341.3 MBcentos_with_net    latest    3e8ea8607f08  4 weeks ago   294.9 MBcentos      latest    9baab0af79c4  6 weeks ago   196.7 MB[[email protected] ~]# ls /data/ls: 無法訪問/data/: 沒有那個文件或目錄[[email protected] ~]# mkdir /data/[[email protected] ~]# docker run -itd -v /data/:/data1 centos bash096460f831bfd72b2efc6ba6b7e7bb060152afa49506ef26e0fa3cb03974f8d5

      -v 用來指定掛載目錄

      “:”前面的/data/為本地目錄

      “:”后面的/data1/為容器里的目錄

[[email protected] ~]# touch /data/1.txt[[email protected] ~]# echo "test" > /data/1.txt[[email protected] ~]# docker exec -it 09646 bash[[email protected] /]# df -hFilesystem                       Size Used Avail Use% Mounted on/dev/mapper/docker-253:0-1447735-096460f831bfd72b2efc6ba6b7e7bb060152afa49506ef26e0fa3cb03974f8d5 9.8G 231M 9.0G 3% /tmpfs                        936M  0 936M 0% /devshm                         64M  0 64M 0% /dev/shm/dev/mapper/VolGroup-lv_root                  35G 6.0G 28G 18% /data1[[email protected] /]# ls /data1/1.txt[[email protected] /]# cat /data1/1.txttest[[email protected] /]# touch /data1/2.txt[[email protected] /]# exitexit[[email protected] ~]# ls /data/1.txt 2.txt

不管是把容器停掉、還是刪除,數據還是存在的

[[email protected] ~]# docker stop 0964609646[[email protected] ~]# ls /data/1.txt 2.txt[[email protected] ~]# docker rm 0964609646[[email protected] ~]# ls /data/1.txt 2.txt

掛載數據卷

[[email protected] ~]# docker run -itd -v /data/:/data1 centos bashe136b27a8e177d878e76c60aafade32df947a60f77b3f95dcaf0680b7ffbc6e8[[email protected] ~]# docker psCONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMESe136b27a8e17  centos    "bash"    14 seconds ago  Up 13 seconds       tender_euclid
        
 
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、