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

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

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

    聶永的博客

    記錄工作/學習的點點滴滴。

    Docker學習筆記之四,構建一個Redis as a Service(RAAS)

    Docker的抽象

    若把一臺Linxu機器比喻為一艘船,那么每一個Linux Container就好比船上的一個集裝箱。

    另外一個層面,Docker Image(鏡像)就是一個預先定義行為的模板,Docker Container(容器)是鏡像模板運行時的狀態。一個鏡像模板,可以對應N個容器實例運行時。 Docker號稱,(鏡像)一處構建,到處運行(Container),這不是當初Java的口號嘛!無論是工作機,還是線上服務器,

    一個具體的Docker鏡像就好比一張畫板,你在上面畫什么,你們就會形成新的模板,可以循環利用。

    Docker可用于測試,可用于沙箱隔離,可用于運行桌面,可用于作為數據/Web服務存在,總之作為一個較為完整的抽象的技術堆棧模板,好比打開了一扇窗,給予了人們若干種可能性,無限的想象空間。

    構建一個Redis as a Service鏡像

    設定企業內部,每一個系統都需要獨享Redis緩存服務,這不就是SAAS軟件即服務的適用場景嘛,若基于Docker上構建,那是相當的簡單。使用Docker腳本構建Redis服務鏡像模板,那是相當的簡單:

    redis.dockerfile:

    FROM        ubuntu:12.10
    RUN         apt-get update
    RUN         apt-get -y install redis-server
    EXPOSE      6379
    ENTRYPOINT  ["/usr/bin/redis-server"]
    

    接著構建鏡像:

    docker build -t yongboy/redis -< redis.dockerfile
    

    當然,你可以使用dns服務來通過內部域名進行路由定位,這里簡略。

    運行時設置某一個Redis Server具體實例:

    docker run -name redis1_server -d -p 192.168.190.133:7001:6379 -m 1g yongboy/redis
    

    這里指定當前運行的實例名稱為redis1_server,分配1G內存,以后臺進程服務方式運行,同時端口映射到宿主機持有第二個IP地址192.168.190.133和端口7001上。執行上面命令,會收到當前內核不支持交換分區的警告信息,這里直接無視好了:

    WARNING: Your kernel does not support memory swap capabilities. Limitation discarded.
    

    在宿主技術上安裝redis客戶端,測試一下,確認可以連接到redis1_server服務器上:

    telnet 192.168.190.133 7001
    Trying 192.168.190.133...
    Connected to 192.168.190.133.
    Escape character is '^]'.
    set docker awesome
    +OK
    get docker
    $7
    awesome
    get redis
    $-1
    

    redis1_server在運行中,輸入 ctrl + ],輸入q退出telnet。

    運行更多的Redis鏡像實例:

    docker run -name redis2_server -d -p 192.168.190.133:7002:6379 -m 1g yongboy/redis
    docker run -name redis3_server -d -p 192.168.190.133:7003:6379 -m 1g yongboy/redis
    docker run -name redis4_server -d -p 192.168.190.133:7004:6379 -m 1g yongboy/redis
    docker run -name redis5_server -d -p 192.168.190.133:7005:6379 -m 1g yongboy/redis
    

    宿主機只有4G內存,那么每一個Redis Sever都會自動分配1G內存,運行5個實例,出現了資源超售現象:

    yongboy@localhost:~$ docker ps
    CONTAINER ID        IMAGE                  COMMAND                CREATED             STATUS              PORTS                            NAMES
    9b9d3f5fceb8        yongboy/redis:latest   /usr/bin/redis-serve   2 seconds ago       Up 1 seconds        192.168.190.133:7005->6379/tcp   redis5_server       
    caf413606999        yongboy/redis:latest   /usr/bin/redis-serve   4 seconds ago       Up 3 seconds        192.168.190.133:7004->6379/tcp   redis4_server       
    76566b33469a        yongboy/redis:latest   /usr/bin/redis-serve   4 seconds ago       Up 4 seconds        192.168.190.133:7003->6379/tcp   redis3_server       
    4e24a529c5fc        yongboy/redis:latest   /usr/bin/redis-serve   4 seconds ago       Up 4 seconds        192.168.190.133:7002->6379/tcp   redis2_server       
    5e3d9536948a        yongboy/redis:latest   /usr/bin/redis-serve   19 minutes ago      Up 19 minutes       192.168.190.133:7001->6379/tcp   redis1_server
    

    在每一個容器實例實際占用內存都達到或接近1G時,會出現內存申請出現失敗情況。實際環境中,這個是需要盡量避免資源超售的。

    在不考慮資源超售或理想情況下,一臺服務服務器最多可虛擬多少個Redis Server容器實例呢,這個跟網絡資源有關。

    服務器對外暴露地址(IP:Port)為二元組,理論上一臺Linux Server可以使用的端口數量為65535個(去除常用的端口設為可用端口有65000個),本機可以綁定的IP數量 * 可用端口數量 = 單機最大可以對外提供的服務器接口地址,即Redis Server實例。這些有些無聊了 :))

    小結

    雖然Docker到現在還沒有釋出1.0版,但基于Docker構建私有還是公有的Service,業界已經給予了很好的一份答案。

    國內已經有百度使用Docker構建自己的商用PAAS平臺,詳見Baidu using Docker for its PaaS。當然了,國內其它PAAS提供商也都在暗中使勁。

    http://www.tsuru.io/的開發者貢獻的tsuru and docker文檔,很好的說明了他們如何使用Docker搭建完整的PAAS平臺一些實踐事宜,包括DNS/路由、各種獨立SAAS、服務發現等,在架構上還是很清晰的。

    嗯,有機會,想測測Docker中容器的性能如何。

    posted on 2013-12-31 15:39 nieyong 閱讀(9196) 評論(2)  編輯  收藏 所屬分類: 容器

    評論

    # re: Docker學習筆記之四,構建一個Redis as a Service(RAAS) 2014-01-01 12:13 私人訂制

    MARK一下,最近剛開始接觸REDIS  回復  更多評論   

    # re: Docker學習筆記之四,構建一個Redis as a Service(RAAS) 2014-03-20 13:59 yaxin

    如果主機重啟了,那么docker中的數據不就丟失了嗎?  回復  更多評論   

    公告

    所有文章皆為原創,若轉載請標明出處,謝謝~

    新浪微博,歡迎關注:

    導航

    <2013年12月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    統計

    常用鏈接

    留言簿(58)

    隨筆分類(130)

    隨筆檔案(151)

    個人收藏

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲天堂男人影院| 久久久久久久久免费看无码| 青草久久精品亚洲综合专区| 无码欧精品亚洲日韩一区| 一区二区三区亚洲视频| 最近最新中文字幕完整版免费高清| a级成人毛片免费图片| 又粗又长又爽又长黄免费视频| 亚洲免费网站观看视频| 国产精品亚洲专区在线观看| 亚洲资源在线观看| 情人伊人久久综合亚洲| 亚洲伊人久久精品影院| 亚洲Av无码乱码在线znlu| 国产免费资源高清小视频在线观看| 久久久久久国产a免费观看黄色大片 | 日本免费无遮挡吸乳视频电影| 精品无码免费专区毛片| 四虎国产精品永久免费网址| 中国黄色免费网站| 国产精品综合专区中文字幕免费播放| 亚洲精品V天堂中文字幕| 亚洲精品一二三区| 国产亚洲国产bv网站在线| 亚洲人成在线免费观看| 亚洲1区1区3区4区产品乱码芒果 | h视频在线免费看| 日本片免费观看一区二区| 四虎成年永久免费网站| 日本在线高清免费爱做网站| 91麻豆最新在线人成免费观看 | 久久亚洲国产欧洲精品一| 亚洲精品无码mv在线观看网站 | 美女羞羞喷液视频免费| 免费无码国产V片在线观看| 日韩在线观看视频免费| a毛片成人免费全部播放| 国产成人无码区免费内射一片色欲| 热99RE久久精品这里都是精品免费 | 处破痛哭A√18成年片免费| 日韩a在线观看免费观看|