成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Docker容器之間拷貝數據:原理與操作示例

云計算
在容器之間拷貝數據是Docker一個重要而且基本的功能??截悢祿狡渌萜鞯墓δ芸梢栽谡鎸崍鼍爸?,如當服務器遇到不可預見的“災難”(注:斷電,宕機)時,起到備份數據的作用。

[[124788]]

Docker容器可以類比成一個目錄,它可以將一個應用程序運行時所依賴的所有環境(注:此應用依賴的其他的服務或程序等)打包在一起運行;同時可 以隨意的對它進行“啟動”、“停止”、“移動”或者“刪除”等操作。Docker容器在Linux的命名空間(Namespace)機制下被激活,這樣就 可以使得運行在同一服務器上的不同Docker容器能在網絡(Networking)與存儲(storage)層面上被“隔離”(isolation)的 運行。每個Docker容器都是在一個Docker鏡像(image)的基礎上創建而來;而一個Docker鏡像可以支持創建、運行多個Docker容 器,這主要取決于服務器的硬件性能。所以,Docker容器是Docker運行時的表現形式。

什么是Docker鏡像?

Docker 容器是基于一個Docker鏡像創建的,而Docker鏡像本身則可以通過Docker命令行工具或者Dockerfiles來生成。Docker鏡像既可以包含操作系統基礎設施(fundamentals)也可以包含一個預先搭建好的可以直接啟動的應用程序棧。Docker鏡像可以被看做是一個只讀的模 板,這個模板中包含了很多“層”;而任何基于這個Docker鏡像的新增操作或者更新操作都會導致一個基于當前層的新的層被創建出來,這個新創建的層是直接疊加在當前層之上的而非覆蓋整個Docker鏡像(注:創建新層的過程就是創建新容器的過程)。這就是一個新的Docker容器是怎么被創建出來的。

從一個容器拷貝數據到另一個容器:

在容器之間拷貝數據是Docker一個重要而且基本的功能??截悢祿狡渌萜鞯墓δ芸梢栽谡鎸崍鼍爸校绠敺掌饔龅讲豢深A見的“災難”(注:斷電,宕機)時,起到備份數據的作用。

使用容器的數據卷:

數據卷(data volume,注:位置在/var/lib/docker/volumes)是容器可以訪問,但是位置不在root文件系統中的一個目錄。為了能讓容器之間可以共享數據,Docker讓“卷”(volume)可以繞過Docker鏡像的層疊機制。容器中所有對鏡像的改變全部都直接存儲。每個容器都有固定的運行目錄在/var/lib/docker目錄下;而每個容器卷的數據則默認單獨存儲在/var/lib/docker/volumes/目錄底下。 docker run命令的-v選項能夠實現容器間數據卷中數據的互相拷貝。

操作示例

在這個例子中,我們假設基于鏡像mymod/dvc:v1創建并運行了兩個容器:dvc1與dvc2,以下是啟動這兩個鏡像的命令:

  1. docker run –d –name dvc1 mymod/dvc:v1 
  2.  
  3. docker run –d –name dvc2 mymod/dvc:v1

以下命令將創建并啟動一個新的容器(也是基于mymod/dvc: v1鏡像)但是掛載dvc1的數據卷,并使用cp命令拷貝容器dvc1中的數據到宿主機(host)上。

  1. [root@host ~]# docker run –rm –v /var/tmp:/host:rw \ –volumes- from dvc1 cp –r/var/www/html/host/dvc1_files 
  2.  
  3. [注:經過測試以上命令應該改為以下形式才能運行] 
  4.  
  5. [root@host ~]# docker run –rm –v /var/tmp:/host:rw –volumes-from dvc1 mymod/dvc: v1 cp –r /var/www/html/host/dvc1_files 

新建的容器以讀-寫權限掛載宿主機的/var/temp目錄為/host目錄,然后掛載所有dvc1的數據卷,包含dvc1中的/var/www/html 目錄,然后拷貝/var/www/html的文件目錄到/host/dvc1_files下,対映宿主機/var/temp目錄。

現在我們用以下命令拷貝dvc1容器的數據到其他的容器中:

  1. [root@host ~]# docker run –rm –v /var/tmp:/host:ro –volumes-from dvc2 \ cp –a –T /host/dvc1_files /var/www/html 

新建的容器將宿主機的/var/tmp目錄以只讀的形式映射到dvc2容器的/host目錄中,同時加載dvc2容器的所有數據卷,然后將/host /dvc1_files(對應宿主機/var/tmp/dvc1_files)目錄的結構拷貝到dvc2容器的/var/www/html目錄下。

同樣的目標可以在Dockerfile中使用ADD命令實現。ADD有兩個參數一個是源容器一個是目的容器。ADD命令可以實現從源容器拷貝文件或者數據到目的容器的目標,而不用管各個容器的文件系統差異。

結論

Docker 肯定會提供更好的方式來“培養”容器化服務部署,以支持更廣泛的部署平臺;同時開發社區也期望Docker構建服務層級(service layer)。而Docker的做法是:開發容器核心容量,開發跨容器服務管理與通信功能。我們在這篇文章中所闡述的是數據可以在容器間被復制與冗余,這可以用來應付各種數據的損毀與恢復。Docker還提供了使用方便的容器間差異分析功能,這可以讓容器更好的支持排錯(debugging)、快速共享部 署環境以達到快速的部署的目標。Docker可以將容器部署環境從開發或者QA階段直接提交到AWS部署環境。用戶可以通過Docker的數據卷在容器間共享數據;可以將宿主機的目錄直接掛載到容器中或者甚至可以從容器中導出數據存檔,所以,Docker非常方便。

本文出自:http://dockerone.com/article/54

責任編輯:Ophira 來源: dockerone
相關推薦

2012-06-18 16:30:26

WindowsLinux

2020-05-18 10:52:00

前端JavaScript html

2017-09-21 08:56:50

數據管理主流

2024-01-10 09:48:52

Docker工具

2019-11-13 14:58:39

JavaScriptNumbers程序員

2019-07-08 08:59:41

Docker容器主機

2018-07-23 09:02:18

容器KubernetesAmazon

2017-11-28 09:21:53

LinuxWindowsDocker

2022-03-10 08:24:17

Docker容器SaaS

2022-11-07 11:37:27

深拷貝淺拷貝底層

2018-11-16 15:35:10

Spring事務Java

2021-05-16 15:28:59

沙箱容器惡意軟件

2023-05-30 14:56:18

Docker開發容器

2011-08-31 13:22:37

PhoneGapAndroidjavascript

2011-07-01 10:52:49

C++構造函數賦值操作

2015-08-19 14:54:25

2021-12-25 23:25:04

LinuxDocker容器

2024-04-10 08:45:51

Vue 3Proxy對象監測數據

2014-12-15 10:23:12

CentOSDocker

2011-10-17 19:33:43

OracleOOW2011云計算
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品被 | 亚洲午夜视频在线观看 | 亚洲色图插插插 | 99热这里都是精品 | 一级片网址 | 久久黄视频| 国产一区二区在线免费观看 | 欧美成人激情 | 日韩成人在线视频 | 国产精品乱码一二三区的特点 | 国产精品伦理一区二区三区 | 高清久久| 亚洲精品视频一区二区三区 | 九九久久精品 | www.成人.com | 欧美国产日本一区 | 国产成人影院 | 欧美国产视频 | 成人午夜精品一区二区三区 | 亚洲精品9999久久久久 | 精品一区二区视频 | 欧美久久视频 | 久久99精品久久久久久青青日本 | 91中文视频 | 成年人在线观看视频 | 久久99精品久久久水蜜桃 | 精品丝袜在线 | 国产精品波多野结衣 | 国产激情91久久精品导航 | 国产黑丝av | 日韩精品极品视频在线观看免费 | 国产区在线观看 | aaaaaaa片毛片免费观看 | 91久久国产 | 欧美精品一区二区三区在线 | 国产精品一区二区三区四区 | 日韩中文在线观看 | 久久久一区二区 | 午夜精品一区二区三区在线观看 | 欧美1级| 成人午夜激情 |