1.什么是數據卷:
數據卷設計的目的,在於數據的永久化,他完全獨立於容器的生存周期,因此,Docker不會在容器刪除時刪除其掛載的數據卷,也不會存在類似的垃圾收集機制,對容器引用的數據卷進行處理。
2.數據卷的特點:
1.數據卷在容器啟動時初始化,如果容器使用的鏡像在掛載點包含了數據,這些數據會拷貝到新初始化的數據卷中。
2.數據卷可以在容器之間共享重用
3.可以對數據卷里的內容直接修改
4.數據卷的變化不會影響鏡像的更新
5.卷會一直存在,即使掛載數據卷的容器已經被刪除
3.使用-v實現數據卷的掛載:
gmh@tfubuntu:~$ mkdir vlu gmh@tfubuntu:~$ cd vlu/ gmh@tfubuntu:~/vlu$ touch hostm gmh@tfubuntu:~/vlu$ docker run --name ubun -v /home/gmh/vlu/:/datavlo -it ubuntu:latest root@70e23b2bb849:/# ls bin boot datavlo dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@70e23b2bb849:/# ls datavlo/ hostm ##可以看到vlu已經被掛載到容器的datavlo,相應的hostm也存在 root@70e23b2bb849:/# cd datavlo/ root@70e23b2bb849:/datavlo# touch container ##在容器內創建文件container gmh@tfubuntu:~/vlu$ ls container hostm ##可以看到vlu也相應的存在container
4.使用daokerfile創建帶有volumes的鏡像:
通過daokerfile創建的帶有volumes的鏡像創建的容器會自動將volumes的目錄掛載到宿主機的指定目錄,可通過docker inspect查看volumes屬性看到。
docker build -t ubunut/dockerfile . ##.表示當前路徑下的Dockerfile ##-f :指定要使用的Dockerfile路徑 ##docker build -f /home/gmh/vlu/df -t ubuntu:df .
進入容器可以看到容器內創建了想贏得掛載目錄
通過docker inspect uf查看掛載目錄
5.數據卷容器
命名的容器掛載數據卷,其他容器通過掛載這個容器實現數據共享,掛載數據卷的這個容器成為數據卷容器
使用數據卷掛載數據實際上這個數據卷容器所起到的作用僅僅是將數據掛載的配置傳遞到掛載了這個數據卷容器的容器中。所以在docker中如果一個數據卷還在被容器使用,那么它就會一直存在。
6.數據卷容器的備份與還原
將數據卷容器的掛載目錄通過新容器的掛載目錄打包到本地
還原同理:把壓縮換成解壓即可