<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    方槍槍的java世界

    不要因為風雨飄落就停止了你的腳步,真正的得失就在你的心中。 做喜歡做的事,不輕言放棄!

    Docker學習筆記(六)容器數據管理

    八、容器數據管理

    docker管理數據的方式有兩種:

    • 數據卷
    • 數據卷容器

    8.1 數據卷

    數據卷是一個或多個容器專門指定繞過Union File System的目錄,為持續性或共享數據提供一些有用的功能:

    • 數據卷可以在容器間共享和重用
    • 數據卷數據改變是直接修改的
    • 數據卷數據改變不會被包括在容器中
    • 數據卷是持續性的,直到沒有容器使用它們

    添加一個數據卷

    你可以使用-v選項添加一個數據卷,或者可以使用多次-v選項為一個 docker 容器運行掛載多個數據卷。

    $ sudo docker run --name data -v /data -t -i ubuntu:14.04 /bin/bash # 創建數據卷綁定到到新建容器,新建容器中會創建 /data 數據卷 bash-4.1# ls -ld /data/
    drwxr-xr-x 2 root root 4096 Jul 23 06:59 /data/
    bash-4.1# df -Th
    Filesystem    Type    Size  Used Avail Use% Mounted on
    ... ...
                  ext4     91G  4.6G   82G   6% /data

    創建的數據卷可以通過docker inspect獲取宿主機對應路徑

    $ sudo docker inspect data
    ... ... "Volumes": { "/data": "/var/lib/docker/vfs/dir/151de401d268226f96d824fdf444e77a4500aed74c495de5980c807a2ffb7ea9" }, # 可以看到創建的數據卷宿主機路徑 ... ...

    或者直接指定獲取

    $ sudo docker inspect --format="{{ .Volumes }}" data
    map[/data: /var/lib/docker/vfs/dir/151de401d268226f96d824fdf444e77a4500aed74c495de5980c807a2ffb7ea9]

    掛載宿主機目錄為一個數據卷

    -v選項除了可以創建卷,也可以掛載當前主機的一個目錄到容器中。

    $ sudo docker run --name web -v /source/:/web -t -i ubuntu:14.04 /bin/bash
    bash-4.1# ls -ld /web/
    drwxr-xr-x 2 root root 4096 Jul 23 06:59 /web/
    bash-4.1# df -Th
    ... ...
                  ext4     91G  4.6G   82G   6% /web
    bash-4.1# exit 

    默認掛載卷是可讀寫的,可以在掛載時指定只讀

    $ sudo docker run --rm --name test -v /source/:/test:ro -t -i ubuntu:14.04 /bin/bash

    8.2 創建和掛載一個數據卷容器

    如果你有一些持久性的數據并且想在容器間共享,或者想用在非持久性的容器上,最好的方法是創建一個數據卷容器,然后從此容器上掛載數據。

    創建數據卷容器

    $ sudo docker run -t -i -d -v /test --name test ubuntu:14.04 echo hello

    使用--volumes-from選項在另一個容器中掛載 /test 卷。不管 test 容器是否運行,其它容器都可以掛載該容器數據卷,當然如果只是單獨的數據卷是沒必要運行容器的。

    $ sudo docker run -t -i -d --volumes-from test --name test1 ubuntu:14.04 /bin/bash

    添加另一個容器

    $ sudo docker run -t -i -d --volumes-from test --name test2 ubuntu:14.04 /bin/bash

    也可以繼承其它掛載有 /test 卷的容器

    $ sudo docker run -t -i -d --volumes-from test1 --name test3 ubuntu:14.04 /bin/bash

    非常詳細的 Docker 學習筆記

    8.3 備份、恢復或遷移數據卷

    備份

    $ sudo docker run --rm --volumes-from test -v $(pwd):/backup ubuntu:14.04 tar cvf /backup/test.tar /test
    tar: Removing leading `/' from member names
    /test/
    /test/b
    /test/d
    /test/c
    /test/a

    啟動一個新的容器并且從test容器中掛載卷,然后掛載當前目錄到容器中為 backup,并備份 test 卷中所有的數據為 test.tar,執行完成之后刪除容器--rm,此時備份就在當前的目錄下,名為test.tar。

    $ ls # 宿主機當前目錄下產生了 test 卷的備份文件 test.tar test.tar

    恢復

    你可以恢復給同一個容器或者另外的容器,新建容器并解壓備份文件到新的容器數據卷

    $ sudo docker run -t -i -d -v /test --name test4 ubuntu:14.04  /bin/bash $ sudo docker run --rm --volumes-from test4 -v $(pwd):/backup ubuntu:14.04 tar xvf /backup/test.tar -C / # 恢復之前的文件到新建卷中,執行完后自動刪除容器 test/ test/b test/d test/c test/a

    8.4 刪除 Volumes

    Volume 只有在下列情況下才能被刪除:

    • docker rm -v刪除容器時添加了-v選項
    • docker run --rm運行容器時添加了--rm選項

    否則,會在/var/lib/docker/vfs/dir目錄中遺留很多不明目錄。

    參考文檔:

    posted on 2016-12-27 21:39 做強大的自己 閱讀(143) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产l精品国产亚洲区在线观看| 国产一级一片免费播放| 韩日电影在线播放免费版| 一级黄色片免费观看| 91福利免费网站在线观看| 亚洲人成网77777亚洲色| 噜噜噜亚洲色成人网站∨| 国产精品亚洲精品观看不卡| 亚洲日本va一区二区三区| 亚洲视频在线免费| 可以免费看黄视频的网站| 国产免费av片在线无码免费看| 亚洲精品天堂无码中文字幕| 免费人成毛片动漫在线播放| 久久久久久久91精品免费观看| 亚洲综合偷自成人网第页色| 成人人观看的免费毛片| 亚洲熟伦熟女新五十路熟妇 | 苍井空亚洲精品AA片在线播放 | 亚洲小说图区综合在线| 亚洲网站在线播放| 精品国产日韩亚洲一区91| 国产又长又粗又爽免费视频| 亚洲无线电影官网| 免费精品视频在线| 在线观看的免费网站| 久久久久亚洲精品无码蜜桃| 亚洲免费视频一区二区三区| 伊伊人成亚洲综合人网7777| 美女黄频视频大全免费的| 久久综合AV免费观看| 亚洲精品第五页中文字幕| 性感美女视频免费网站午夜| 一级免费黄色大片| 亚洲一区二区影院| 日本一道一区二区免费看| 一本天堂ⅴ无码亚洲道久久| 亚洲精品无码成人片在线观看 | 亚洲高清视频在线| 中文字幕无码播放免费| 911精品国产亚洲日本美国韩国 |