偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

談一談容器的持久存儲實例

存儲 存儲軟件
容器的持久存儲有多個解決方案,本文針對的是運行在容器里的應(yīng)用的持久存儲。除了Docker自帶的Volumes解決方案外,還有開源的解決方案(Flocker,Torus),也有商用的解決方案(Portworx)。

 簡介

容器的持久存儲有多個解決方案,本文針對的是運行在容器里的應(yīng)用的持久存儲。除了Docker自帶的Volumes解決方案外,還有開源的解決方案(Flocker,Torus),也有商用的解決方案(Portworx)。本文提供了一個Docker Volumes和NFS結(jié)合起來的解決方案,并且介紹了具體的實施步驟。

[[210779]]

這個方案的體系架構(gòu)是Docker,NFS Mount和數(shù)據(jù)庫相結(jié)合的綜合產(chǎn)物。NFS和數(shù)據(jù)庫可以運行在不同的服務(wù)器上。數(shù)據(jù)庫不只是單機數(shù)據(jù)庫,也可以是集群數(shù)據(jù)庫。本文的實例是運行在一臺8個內(nèi)核16GB內(nèi)存的Linux主機上的。其在主機上的容器如下:

Linux上的Docker NFS掛載

NFS(網(wǎng)絡(luò)文件系統(tǒng))是一個允許用戶遠程存儲文件的協(xié)議,廣泛應(yīng)用于Linux操作系統(tǒng)中。NFS同時也是遠程進行持久存儲的一種方式。這里利用NFS和Docker的Volumes結(jié)合起來解決Docker容器的持久存儲問題。

NFS不一定要安裝在主機裸機上,也可以運行在容器里。Docker Hub上有了一個相當(dāng)不錯的NFS Docker鏡像,可以把容器里的一個路徑展示給主機,以便在主機的文件系統(tǒng)上形成一個掛載(mount):

https://hub.docker.com/r/mnagy/nfs-server/

本例使用如下命令啟動NFS服務(wù)器容器:

  1. docker run -d --net=bridge --privileged --name nfs-server mnagy/nfs-server /exports/portworx 

這里面“/exports/portworx” 是主機可以掛載的容器里的路徑。

主機是利用如下的命令把容器里的路徑“/exports/portworx”在主機上形成NFS掛載的:

  1. sudo mount 10.255.0.1:/exports/portworx /mnt2 

NFS服務(wù)器的IP地址可以通過Docker命令來找到:

  1. docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' nfs-server  
  2. 10.255.0.1 

Redis在NFS掛載上的持久存儲

談到持久存儲就需要持久存儲的工具。數(shù)據(jù)庫是很好的持久存儲的工具。數(shù)據(jù)庫類的應(yīng)用有很多種,這里采用被廣泛認可的Redis鍵值存儲應(yīng)用。

下面的鏈接是一個很好的Redis Docker鏡像,我們可以用來快速運行一個容器來存儲持久數(shù)據(jù):

  1. https://hub.docker.com/_/redis/ 

當(dāng)我們啟動了Redis的持久存儲功能,數(shù)據(jù)就會保存在Redis的一個叫Data的卷里。然后我們可以把Redis的這個卷映射到主機的/mnt2路徑,這樣就可以和NFS掛載機制聯(lián)系起來:

  1. docker run --name redis-server-wma -v /mnt2:/data -d redis redis-server --appendonly yes 

向Redis發(fā)送數(shù)據(jù)

為了完整的展示一個實例,我們要向Redis發(fā)送大量模擬數(shù)據(jù)。我們想看到的是數(shù)據(jù)最終落到NFS服務(wù)器上。我們將利用Shell腳碼來向Redis發(fā)送數(shù)據(jù)。

首先,我們運行一個交互模式的Redis客戶端容器:

  1. docker run --name redis-client --link redis-server-wma:redis -it alpine 

然后, 我們運行如下的命令來發(fā)送數(shù)據(jù):

  1. for i in `seq 10000000`; do redis-cli -h redis -p 6379 SET users:app "{id: '$i', name: 'name$i', address: 'address$i' }" ; done 

之后我們可以登陸nfs-server:

  1. docker exec -it nfs-server /bin/bash 

我們可以看到NFS服務(wù)器的export 路徑填滿了數(shù)據(jù),并且數(shù)據(jù)不斷增漲:

  1. [root@02040860a13d /]# ls -alh /exports/portworx/ 
  2. total 19M 
  3. drwxrwxrwx 2 999 27 4.0K Nov 6 21:58 . 
  4. drwxr-xr-x 3 root root 4.0K Nov 6 10:41 .. 
  5. -rw-r--r-- 1 999 input 19M Nov 6 22:17 appendonly.aof 

這就驗證了Docker Volumes和NFS相結(jié)合的解決方案是有效的。

責(zé)任編輯:武曉燕 來源: talkwithtrend
相關(guān)推薦

2021-02-19 09:19:11

消息隊列場景

2021-07-28 20:12:17

WindowsHeap內(nèi)存

2018-08-21 14:42:29

閃存存在問題

2011-07-28 09:49:04

Oracle數(shù)據(jù)庫服務(wù)Oracle實例

2022-02-14 22:22:30

單元測試Junit5

2014-07-17 10:11:53

Android LAPI谷歌

2022-07-04 10:51:27

數(shù)據(jù)中臺數(shù)據(jù)倉庫

2009-04-09 13:58:58

JavaXML存儲

2021-05-11 08:48:23

React Hooks前端

2021-11-23 09:45:26

架構(gòu)系統(tǒng)技術(shù)

2015-03-27 15:07:55

云計算IaaS平臺Docker

2016-07-08 13:33:12

云計算

2021-03-15 22:42:25

NameNodeDataNode分布式

2011-07-28 09:22:56

Oracle WDPOracle數(shù)據(jù)庫

2019-01-30 10:59:48

IPv6Happy EyebaIPv4

2018-08-28 06:42:06

邊緣計算SDNMEC

2019-11-12 08:40:03

RocketMQ架構(gòu)

2020-06-19 15:32:56

HashMap面試代碼

2020-03-25 11:37:17

存儲云原生DevOps

2017-09-21 08:16:33

數(shù)據(jù)存儲環(huán)境
點贊
收藏

51CTO技術(shù)棧公眾號