Docker volume使用
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
? ? ??一個數(shù)據(jù)卷是一個特別指定的目錄,該目錄利用容器的UFS文件系統(tǒng)可以為容器提供一些穩(wěn)定的特性或者數(shù)據(jù)共享。數(shù)據(jù)卷可以在多個容器之間共享。
??????創(chuàng)建數(shù)據(jù)卷,只要在docker run命令后面跟上-v參數(shù)即可創(chuàng)建一個數(shù)據(jù)卷,當(dāng)然你也可以跟多個-v參數(shù)來創(chuàng)建多個數(shù)據(jù)卷,當(dāng)創(chuàng)建好帶有數(shù)據(jù)卷的容器后,你就可以在其他容器中通過--volumes-froms參數(shù)來掛載該數(shù)據(jù)卷了,而不管該容器是否運行。你也可以在Dockerfile中通過VOLUME指令來增加一個或者多個數(shù)據(jù)卷。
??????如果你有一些數(shù)據(jù)想在多個容器間共享,或者想在一些臨時性的容器中使用該數(shù)據(jù),那么最好的方案就是你創(chuàng)建一個數(shù)據(jù)卷容器,然后從該臨時性的容器中掛載該數(shù)據(jù)卷容器的數(shù)據(jù)。例如如下操作:
#啟動一個Volume_Container容器,包含兩個數(shù)據(jù)卷 docker run -v /var/volume1 -v /var/volume2 -name Volume_Container ubuntu14.04 linux_command#創(chuàng)建App_Container容器,掛載Volume_Container容器中的數(shù)據(jù)卷 docker run -t -i -rm -volumes-from Volume_Container -name App_Container ubuntu14.04 linux_command#或者再創(chuàng)建一個容器,掛載App_Container中從Volume_Container掛載的數(shù)據(jù)卷 docker run -t -i -rm -volumes-from App_Container -name LastApp_Container ubuntu14.04 linux_command
? ? ? 1? ? 在一個終端內(nèi)創(chuàng)建數(shù)據(jù)卷容器,并在數(shù)據(jù)卷目錄內(nèi)寫入測試文件
????? 2? ? 另打開一個容器,掛載上一個數(shù)據(jù)卷容器的數(shù)據(jù)卷,查看測試文件?
? ? ??????即使你刪除了剛開始的第一個數(shù)據(jù)卷容器或者中間層的數(shù)據(jù)卷容器,只要有其他容器使用數(shù)據(jù)卷,數(shù)據(jù)卷都不會被刪除的。
? ? ??你也可以把一個本地主機的目錄當(dāng)做數(shù)據(jù)卷掛載在容器上,同樣是在docker run后面跟-v參數(shù),不過-v后面跟的不再是單獨的目錄了,他是[host-dir]:[container-dir]:[rw|ro]這樣格式的,host-dir是一個絕對路徑的地址,如果host-dir不存在,則docker會創(chuàng)建一個新的數(shù)據(jù)卷,如果host-dir存在,但是指向的是一個不存在的目錄,則docker也會創(chuàng)建該目錄,然后使用該目錄做數(shù)據(jù)源。例如:
docker run -i -t -v /tmp:/mnt ubuntu/14.04:14.04 /bin/bash
????????你不能使用docker export、save、cp等命令來備份數(shù)據(jù)卷的內(nèi)容,因為數(shù)據(jù)卷是存在于鏡像之外的,但是總會有變通方法的,如下:
docker run -rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data ? ? ? ? ??創(chuàng)建一個新容器,掛載數(shù)據(jù)卷容器,同時掛載一個本地目錄,然后把遠程數(shù)據(jù)卷容器的數(shù)據(jù)卷通過備份命令備份到映射的本地目錄里面。
轉(zhuǎn)載于:https://my.oschina.net/guol/blog/271225
總結(jié)
以上是生活随笔為你收集整理的Docker volume使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring 注解学习手札(七) 补遗—
- 下一篇: Linux下配置DNS服务器之一--Ma