<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 做強大的自己 閱讀(135) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 最新国产成人亚洲精品影院| 亚洲爆乳精品无码一区二区三区| 在线免费观看伊人三级电影| 中文字幕永久免费视频| 99久久精品免费视频| 成人免费一区二区三区在线观看| 国产精品无码一区二区三区免费 | 91丁香亚洲综合社区| 成人最新午夜免费视频| 亚洲精品无码久久久久久| 国产精品永久免费视频| 伊人久久大香线蕉免费视频| 国产亚洲福利精品一区| 亚洲人成网站18禁止| 国产又大又长又粗又硬的免费视频| 久久久久久A亚洲欧洲AV冫| 国产成人精品日本亚洲11| 成人免费看黄20分钟| 高潮毛片无遮挡高清免费视频 | 国产成在线观看免费视频| 中文字幕无码精品亚洲资源网| 两个人看www免费视频| 亚洲高清无在码在线电影不卡| 曰批全过程免费视频观看免费软件| 波多野结衣免费在线| 亚洲色偷偷偷鲁综合| 欧洲美女大片免费播放器视频 | 天天操夜夜操免费视频| 亚洲人成影院在线| 久久国产一片免费观看| 亚洲a一级免费视频| 国产自国产自愉自愉免费24区| 免费国产成人午夜私人影视| 中文字幕亚洲码在线| 国产成在线观看免费视频| 青娱乐在线视频免费观看| 亚洲人成在线影院| 国产美女无遮挡免费网站| 免费毛片a线观看| 国产亚洲精aa成人网站| 国产四虎免费精品视频|