婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > docker容器與宿主機的數據交互方式總結

docker容器與宿主機的數據交互方式總結

熱門標簽:電銷智能機器人試用 撫州市城區地圖標注 中國地圖標注上各個省 新鄉牧野400電話申請 激光標記地圖標注 百度地圖底圖標注 企業辦理400電話收費標準 高德地圖標注足跡怎么打標 智能電銷機器人真的有用么

前言

在生產環境中使用 Docker ,往往需要對數據進行持久化,或者需要在多個容器之間進行數據共享,這必然涉及容器的數據管理操作。

方式一、Docker cp命令

docker cp :用于容器與主機之間的數據拷貝。
語法
# 容器內文件 copy to 宿主機
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
# 宿主機文件 copy to 容器內
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

OPTIONS說明:
-L :保持源目標中的鏈接

操作示例:

宿主機到容器

容器到宿主機

注:此方式雖然他也可以管理但是數據不交融,基本不會使用,僅做了解

方式二、Docker數據卷

1. 什么是volume

  想要了解Docker Volume,首先我們需要知道Docker的文件系統是如何工作的。Docker鏡像是由多個文件系統(只讀層)疊加而成。當我們啟動一個容器的時候,Docker會加載鏡像層并在其上添加一個讀寫層。如果運行中的容器修改了現有的一個已存在的文件,那該文件將會從讀寫層下的只讀層復制到讀寫層,該文件的只讀版本仍然存在,只是已經被讀寫層中該文件的副本所隱藏。當刪除Docker容器,并通過該鏡像重新啟動時,之前的更改將會丟失。在Docker中,只讀層以及在頂部的讀寫層的組合被稱為Union FIle System(聯合文件系統)。

  為了能夠保存(持久化)數據以及共享容器間的數據,Docker提出了Volume的概念。簡單來說,Volume就是目錄或者文件,它可以繞過默認的聯合文件系統,而以正常的文件或者目錄的形式存在于宿主機上。

2. 數據卷的特性

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

• 對數據卷的修改會立馬生效

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

• 數據卷 默認會一直存在,即使容器被刪除

3. 數據卷相關操作

Usage: docker volume COMMAND
Manage volumes
Commands:
create Create a volume
inspect Display detailed information on one or more volumes
ls List volumes
prune Remove all unused local volumes
rm Remove one or more volumes

  創建數據卷

Usage: docker volume create [OPTIONS] [VOLUME]
Create a volume
Options:
 -d, --driver string Specify volume driver name (default "local")
 --label list Set metadata for a volume
 -o, --opt map  Set driver specific options (default map[])

  查看所有數據卷

Usage: docker volume ls [OPTIONS]
List volumes
Aliases:
 ls, list
Options:
 -f, --filter filter Provide filter values (e.g. 'dangling=true')
 --format string Pretty-print volumes using a Go template
 -q, --quiet  Only display volume names

  查看單一或多個數據卷詳情

Usage: docker volume inspect [OPTIONS] VOLUME [VOLUME...]
Display detailed information on one or more volumes
Options:
 -f, --format string Format the output using the given Go template

  刪除單一數據卷

Usage: docker volume rm [OPTIONS] VOLUME [VOLUME...]
Remove one or more volumes. You cannot remove a volume that is in use by a container.
Aliases:
 rm, remove
Options:
 -f, --force Force the removal of one or more volumes

  刪除所有閑置數據卷

Usage: docker volume prune [OPTIONS]
Remove all unused local volumes
Options:
 --filter filter Provide filter values (e.g. 'label=<label>')
 -f, --force  Do not prompt for confirmation

操作示例:

4. 數據卷使用

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

用戶可以通過docker run的--volume/-v或--mount選項來創建帶有數據卷的容器,但兩個參數不能同時使用。

大體來說,--mount更加明確和冗長。最大的區別是-v語法將所有選項組合在一個字段中,而--mount語法將它們分離。對于新手來說建議使用--mount,因為更容易理解。

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Run a command in a new container
Options:
 --volume list   Bind mount a volume
 --volume-driver string  Optional volume driver for the container
 --volumes-from list  Mount volumes from the specified container(s)
 --mount mount   Attach a filesystem mount to the container

4.1 --volume使用詳述

  參數--volume(或簡寫為-v)只能創建bind mount。

命令格式:
-v [[HOST-OPTIONS:]CONTAINER-DIR[:OPTIONS]]]
HOST-OPTIONS:
VOLUME_NAME(數據卷名稱)
ABSOLUTE-HOST-DIR(宿主機文件目錄絕對路徑)
ABSOLUTE-HOST-FILE(宿主機文件絕對路徑)  (為空的情況下將掛載匿名數據卷)
Options:
rw 讀寫(默認值)
ro 只讀

4.1.1 根據數據卷名稱進行掛載

docker run -itd -v VOLUME_NAME:CONTAINER-DIR IMAGE [COMMAND] [ARG...]

示例:

將數據卷 my_vol 掛載到容器的/data/docker/volume/my_vol 目錄

docker run -itd --name=vol1_ubuntu -v my_vol:/data/docker/volume/my_vol ubuntu /bin/bash

注:如果數據卷my_vol 存在將直接進行掛載,如果不存在 docker 將先自動創建數據卷再進行掛載。

4.1.2 根據宿主機文件目錄絕對路徑進行掛載

docker run -it -v ABSOLUTE-HOST-DIR:CONTAINER-DIR IMAGE [COMMAND] [ARG...]

示例:

將宿主機文件目錄 /opt/common/docker/volumes/my_vol2 掛載到容器的/data/docker/volume/my_vol 目錄

docker run -itd --name=vol2_ubuntu -v /opt/common/docker/volumes/my_vol2:/data/docker/volume/my_vol ubuntu /bin/bash

注:宿主機的文件目錄必須為絕對路徑。

4.1.3 根據宿主機文件絕對路徑進行掛載

docker run -itd -v VOLUME_NAME:CONTAINER-DIR IMAGE [COMMAND] [ARG...]

示例:

將宿主機文件 ~/.bash_history 掛載到容器的/.bash_history

docker run -itd --name=vol3_ubuntu -v ~/.bash_history:/.bash_history ubuntu /bin/bash

4.1.4 掛載匿名卷

-v 參數如果不加任何宿主機相關卷信息docker將創建一個匿名卷進行掛載

docker run -itd -v CONTAINER-DIR IMAGE [COMMAND] [ARG...]

示例:

掛載匿名卷到容器的/data/docker/volume/my_vol 目錄

docker run -itd --name=vol4_ubuntu -v /data/docker/volume/my_vol ubuntu /bin/bash

4.1.5 -v綜合運行示例如下:

docker run -itd --name=vol_ubuntu \

-v my_vol:/data/docker/volume/my_vol1:ro \

-v /opt/common/docker/volumes/my_vol2:/data/docker/volume/my_vol2:rw \

-v /opt/common/docker/volumes/my_vol3.txt:/data/docker/volume/my_vol3.txt \

-v /data/docker/volume/my_vol4 \

ubuntu /bin/bash

4.2 --mount 使用詳述

--mount:由多個用逗號分隔的<key>=<value>鍵值對組成,鍵的順序隨意。

命令格式:
--mount type=MOUNT-TYPE,<key>=<value>

對于--moun選項,目前Docker提供了三種不同類型的數據卷從宿主機掛載到容器中:volume,bind,tmpfs。

  三種方式的示意圖如下所示:

4.2.1 named mount

  普通數據卷(默認即這種類型),Docker管理宿主機文件系統的一部分,默認位于 /var/lib/docker/volumes 目錄中;

--mount type=volume,source=<VOLUME-NAME>,destination=<CONTAINER-PATH>,volume-driver=<DRIVER-NAME>,volume-opt=<OPTION>=<VALUE>,readonly

<key>=<value>說明:
source:數據卷源路徑,關鍵字可以是 source 或 src,如果無此參數docker將自動創建匿名卷掛載
VOLUME-NAME:數據卷名稱
destination:數據卷目標路徑,關鍵字可以是 destination 或 dst 或 target
CONTAINER-PATH:數據卷在容器內的掛載路徑
volume-driver:指定數據卷驅動程序,默認取 “local”
DRIVER-NAME:驅動名稱
volume-opt:可選項,數據卷驅動程序傳參選項
OPTION:key值
VALUE:value值
readonly:可選項,設置數據卷以只讀權限掛載到容器內,默認為可讀寫

 代碼示例:

docker service create --mount 'type=volume,src=<VOLUME-NAME>,dst=<CONTAINER-PATH>,volume-driver=local,volume-opt=type=nfs,volume-opt=device=<nfs-server>:<nfs-path>,"volume-opt=o=addr=<nfs-address>,vers=4,soft,timeo=180,bg,tcp,rw"' --name myservice <IMAGE> 

4.2.2bindmount

  綁定數據卷,文件或目錄掛載,意為著可以存儲在宿主機系統的任意位置;

--mount type=bind,source=<HOST-PATH>,destination=<CONTAINER-PATH>,bind-propagation=<PG-TYPE>,readonly

<key>=<value>說明:
source:數據卷源路徑,關鍵字可以是 source 或 src,且執行掛在前確保文件或文件目錄存在否則會執行出錯
HOST-PATH:宿主機文件或目錄的絕對路徑
destination:數據卷目標路徑,關鍵字可以是 destination 或 dst 或 target
CONTAINER-PATH:數據卷在容器內的掛載路徑
bind-propagation:可選項,
PG-TYPE:可選值rprivate, private, rshared, shared, rslave, slave.
readonly:可選項,設置數據卷以只讀權限掛載到容器內,默認為可讀寫即不加此參數

  *注意:Dockerfile 中不支持這種用法,這是因為 Dockerfile 是為了移植和分享用的。然而,不同操作系統的路徑格式不一樣,所以目前還不能支持。

 代碼示例:

docker run -d -it --name devtest --mount type=bind,source="$(pwd)"/target,target=/app --mount type=bind,source="$(pwd)"/target,target=/app2,readonly,bind-propagation=rslave nginx:latest 

4.2.2 tmpfs mount

  臨時數據卷,掛載存儲在宿主機系統的內存中,而不會寫入宿主機的文件系統;

--mount type=tmpfs,destination=<CONTAINER-PATH>,tmpfs-size=<SIZE-VALUE>,tmpfs-mode=<MODE-VALUE>,readonly

<key>=<value>說明:
destination:數據卷目標路徑,關鍵字可以是 destination 或 dst 或 target
CONTAINER-PATH:數據卷在容器內的掛載路徑
tmpfs-size:可選項,tmpfs裝載的大小(以字節為單位),Linux中默認無限大。
SIZE-VALUE:數值
tmpfs-mode:可選項,tmpfs的八進制文件模式,Linux中的默認值是“1777”。
MODE-VALUE:數值

  注:這個功能只有在Linux上運行Docker時才可用。 

  代碼示例:

docker run -d -it --name tmptest --mount type=tmpfs,destination=/app,tmpfs-size=1024,tmpfs-mode=1770 nginx:latest

4.3 -v 與 --mount的區別

  (1)--mount可以支持創建集群服務(services)的數據卷,而-v不行。

  (2)進行文件或目錄的掛載,如果掛載前不存在 -v docker會自動創建,--mount 不會(會報錯)。

4.4 補充說明

  (1)(--mount基本包含了--volume的可選屬性內容)官方建議使用--mount的方式,原文如下:

     Even though there is no plan to deprecate--volume, usage of--mountis recommended.

  (2)官方文檔鏈接:

    https://docs.docker.com/storage/volumes/

    https://docs.docker.com/engine/reference/commandline/service_create/

方式三、Docker數據卷容器

  數據卷容器也是一個容器,但是它的目的是專門提供數據卷給其他容器掛載,如果用戶需要在多個容器之間共享一些持續更新的數據,最簡單的方式是使用數據卷容器。

1. 數據卷容器的基本使用1.1 創建數據卷容器

  創建一個數據卷容器dbdata,并在其中創建一個數據卷掛載到/dbdata目錄:

docker run -it -v /dbdata --name db_data ubuntu

1.2 其他容器掛載

  其他容器中使用 --volumes-from 來掛載dbdata容器中的數據卷

docker run -it --volumes-from db_data --name db1 ubuntu
docker run -it --volumes-from db_data --name db2 ubuntu

  db1、db2通過db_data來共享了數據

2. 利用數據卷容器來備份、恢復、遷移數據卷

  可以利用數據卷對其中的數據進行進行備份、恢復和遷移。

2.1 備份

  首先使用 --volumes-from 標記來創建一個加載 dbdata 容器卷的容器,并從本地主機掛載當前到容器的 /backup 目錄。命令如下:

sudo docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata

  容器啟動后,使用了 tar 命令來將 dbdata 卷備份為本地的 /backup/backup.tar。

2.2 恢復

  如果要恢復數據到一個容器,首先創建一個帶有數據卷的容器 dbdata2。

sudo docker run -v /dbdata --name dbdata2 ubuntu /bin/bash

  然后創建另一個容器,掛載 dbdata2 的容器,并使用 untar 解壓備份文件到掛載的容器卷中。

sudo docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar

聲明:博文內容純屬個人理解,有異議請點評

到此這篇關于docker容器與宿主機的數據交互方式總結的文章就介紹到這了,更多相關docker容器與宿主機數據交互內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:忻州 海西 臨汾 邯鄲 延安 南通 西安 辛集

巨人網絡通訊聲明:本文標題《docker容器與宿主機的數據交互方式總結》,本文關鍵詞  docker,容器,與,宿,主機,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《docker容器與宿主機的數據交互方式總結》相關的同類信息!
  • 本頁收集關于docker容器與宿主機的數據交互方式總結的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产成人精品午夜视频免费| 亚洲精品成人悠悠色影视| 91伊人久久大香线蕉| 国产精品自在欧美一区| 精品中文字幕一区二区小辣椒| 亚洲一区二区av在线| 亚洲国产日产av| 日韩高清电影一区| 日本在线不卡视频一二三区| 日韩电影一二三区| 精品影院一区二区久久久| 久久成人免费网站| 国内久久精品视频| 岛国精品在线观看| 日本伦理一区二区| 欧美日韩免费一区二区三区| 欧美精选在线播放| 欧美大胆一级视频| 久久九九国产精品| 亚洲色图.com| 首页国产丝袜综合| 国产在线视视频有精品| 成人综合激情网| 欧美日韩一区三区| 精品国产成人系列| 亚洲日本护士毛茸茸| 五月天一区二区| 国产激情精品久久久第一区二区| 成人免费看片app下载| 欧美亚日韩国产aⅴ精品中极品| 欧美精品xxxxbbbb| 国产欧美日韩卡一| 五月激情综合婷婷| 成人免费毛片aaaaa**| 欧美精品在线观看播放| 国产三级精品在线| 日韩国产精品久久| 99国产精品一区| 欧美一级黄色片| 亚洲欧美一区二区三区国产精品| 日韩精品一二三区| 色综合久久中文综合久久97| 日韩欧美国产精品| 亚洲综合一二区| 国产成人在线色| 6080国产精品一区二区| 国产精品久久久一区麻豆最新章节| 午夜伦欧美伦电影理论片| 国产不卡视频在线播放| 欧美另类videos死尸| 中文无字幕一区二区三区| 亚洲成人综合网站| 99久久99久久精品免费看蜜桃| 91精品在线麻豆| 亚洲综合区在线| 成人国产亚洲欧美成人综合网 | 色88888久久久久久影院按摩| 精品噜噜噜噜久久久久久久久试看 | 91网站黄www| 国产午夜精品一区二区三区视频| 日韩福利视频导航| 欧美日韩中文字幕一区二区| 中文字幕一区二区三区av | 最新国产の精品合集bt伙计| 国产精品一线二线三线| 欧美不卡一二三| 青娱乐精品视频| 日韩欧美在线影院| 日韩av电影天堂| 日韩一区二区免费在线观看| 午夜不卡av在线| 91精品婷婷国产综合久久| 亚洲va欧美va人人爽| 欧美日韩一区久久| 免费在线观看不卡| 日韩一级黄色片| 免费成人在线影院| 欧美大片拔萝卜| 国产毛片精品一区| 国产日韩欧美一区二区三区乱码| 国产乱人伦偷精品视频不卡| 久久久国产一区二区三区四区小说| 韩国理伦片一区二区三区在线播放| 欧美成人激情免费网| 国产激情91久久精品导航| 国产欧美一区二区在线| 99视频在线观看一区三区| 成人欧美一区二区三区1314| 色综合久久88色综合天天免费| 一区二区三区精密机械公司| 欧美另类videos死尸| 国产中文字幕精品| 亚洲天堂网中文字| 欧美久久久久久久久久| 久久99久久久欧美国产| 中文字幕欧美三区| 欧美性做爰猛烈叫床潮| 久草热8精品视频在线观看| 欧美国产日韩亚洲一区| 色噜噜久久综合| 久久精品国产一区二区三区免费看| 欧美一级日韩一级| 成人网页在线观看| 午夜视频在线观看一区二区| 日韩你懂的在线播放| 99久久免费国产| 天天综合天天综合色| 国产欧美视频一区二区三区| 在线看不卡av| 国产精品综合一区二区| 午夜精品一区在线观看| 国产精品日韩成人| 欧美一区二区三区系列电影| 成人一区二区三区| 免费成人美女在线观看.| 国产精品高潮呻吟| 337p日本欧洲亚洲大胆色噜噜| 91免费看`日韩一区二区| 激情另类小说区图片区视频区| 中文字幕一区二区三区视频| 日韩你懂的在线观看| 欧美亚洲丝袜传媒另类| av一本久道久久综合久久鬼色| 日韩av一区二区三区四区| 中文字幕一区在线观看| 精品国产乱码久久久久久蜜臀| 在线视频国内一区二区| 成人精品高清在线| 国产制服丝袜一区| 另类人妖一区二区av| 亚洲影院理伦片| 亚洲乱码中文字幕| 欧美国产日韩在线观看| 久久免费美女视频| 日韩视频一区二区三区| 欧美日韩在线观看一区二区| 99久久99久久免费精品蜜臀| 国产91精品精华液一区二区三区 | 欧美精品一区二区在线播放| 欧美亚洲免费在线一区| 色悠久久久久综合欧美99| av在线综合网| 99视频精品在线| 成人国产精品视频| 国产成人一区在线| 成人做爰69片免费看网站| 国产精品夜夜嗨| 风间由美性色一区二区三区| 国产精品资源站在线| 国产麻豆成人精品| 国产成人av自拍| 成人sese在线| 99久久精品久久久久久清纯| www.成人在线| 在线视频观看一区| 777亚洲妇女| 精品久久久网站| 国产日韩欧美高清| 亚洲色图欧洲色图婷婷| 亚洲激情五月婷婷| 亚洲国产va精品久久久不卡综合 | 久久久影视传媒| 国产精品久久午夜| 亚洲欧美激情插 | 一区二区三区欧美激情| 亚洲一区在线观看视频| 亚洲国产欧美日韩另类综合 | 一区二区三区在线观看视频| 亚洲黄色免费网站| 三级欧美韩日大片在线看| 麻豆91精品91久久久的内涵| 精品写真视频在线观看| 成人av电影在线观看| 日本道精品一区二区三区| 欧美精品日韩综合在线| 精品免费视频一区二区| 国产精品久久久久久久久果冻传媒| 夜夜夜精品看看| 黄色精品一二区| 日本精品裸体写真集在线观看 | 亚洲欧美视频一区| 日韩精品五月天| 国产九色sp调教91| 欧美日韩一区久久| 中文字幕欧美激情一区| 亚洲成a人片在线不卡一二三区| 国产在线播精品第三| 在线欧美日韩国产| 国产三级一区二区| 亚洲亚洲人成综合网络| 国产一区 二区 三区一级| 欧美性猛交一区二区三区精品| 久久嫩草精品久久久精品一| 亚洲综合一区二区精品导航| 国产成人亚洲综合a∨婷婷图片| 欧美日韩一卡二卡三卡 | 秋霞成人午夜伦在线观看| 99国产精品一区| 国产午夜一区二区三区| 美国三级日本三级久久99 |