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

Docker部署:基于Ryu的SDN環境

云計算
本篇內容主要介紹什么是Docker、Docker簡單入門以及如何使用Docker部署SDN環境,以及docker的網絡配置等內容。What is Docker和Why Docker部分摘自《Docker從入門到實踐》。

[[123891]]

前言

5月份的時候,當我還是一個大學生的時候,有個網友問我,你有研究Docker嗎?當時我連Docker是什么都不知道。谷歌之后,對Docker產生興趣,但是一直沒有時間去學習。這個周終于將這個學習計劃列入了Todolist。所以我花了3天時間,認真地把這《Docker 從入門到實踐》看完并實踐了一遍,收獲頗豐。雖然我的導師以及我自己還是覺得我在瞎轉,而且我覺得沒有方向的日子很痛苦。所以只好自己做計劃,學習點新知識,打打基礎了。本篇內容主要介紹什么是Docker、Docker簡單入門以及如何使用Docker部署SDN環境,以及docker的網絡配置等內容。What is Docker和Why Docker部分摘自《Docker從入門到實踐》。

Docker是什么

Docker 是一個開源項目,誕生于 2013 年初,最初是 dotCloud 公司內部的一個業余項目。它基于 Google 公司推出的 Go 語言實現。 項目后來加入了 Linux 基金會,遵從了 Apache 2.0 協議,項目代碼在 GitHub 上進行維護。Redhat 已經在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 產品中廣泛應用。

Docker 項目的目標是實現輕量級的操作系統虛擬化解決方案。 Docker 的基礎是 Linux 容器(LXC)等技術。

下面的圖片比較了 Docker 和傳統虛擬化方式的不同之處,可見容器是在操作系統層面上實現虛擬化,直接復用本地主機的操作系統,而傳統方式則是在硬件層面實現。

圖1:Docker和虛擬機對比

#p#

Docker的優勢

首先,Docker 容器的啟動可以在秒級實現,這相比傳統的虛擬機方式要快得多。 其次,Docker 對系統資源的利用率很高,一臺主機上可以同時運行數千個 Docker 容器。

容器除了運行其中應用外,基本不消耗額外的系統資源,使得應用的性能很高,同時系統的開銷盡量小。傳統虛擬機方式運行 10 個不同的應用就要起 10 個虛擬機,而Docker 只需要啟動 10 個隔離的應用即可。

具體說來,Docker 在如下幾個方面具有較大的優勢。

更快速的交付和部署

對開發和運維(devop)人員來說,最希望的就是一次創建或配置,可以在任意地方正常運行。

開發者可以使用一個標準的鏡像來構建一套開發容器,開發完成之后,運維人員可以直接使用這個容器來部署代碼。 Docker 可以快速創建容器,快速迭代應用程序,并讓整個過程全程可見,使團隊中的其他成員更容易理解應用程序是如何創建和工作的。 Docker 容器很輕很快!容器的啟動時間是秒級的,大量地節約開發、測試、部署的時間。

更高效的虛擬化

Docker 容器的運行不需要額外的 hypervisor 支持,它是內核級的虛擬化,因此可以實現更高的性能和效率。

更輕松的遷移和擴展

Docker 容器幾乎可以在任意的平臺上運行,包括物理機、虛擬機、公有云、私有云、個人電腦、服務器等。 這種兼容性可以讓用戶把一個應用程序從一個平臺直接遷移到另外一個。

更簡單的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分發和更新,從而實現自動化并且高效的管理。

Docker簡單入門

谷歌出來的教程實在太多了。所以我也不打算太多介紹,只講一些我覺得對于網絡研究人員而言比較有用的命令。

基本概念

鏡像(Image):鏡像是一個只讀模板。用戶上傳制作好的鏡像供其他人下載使用。用戶可以基于鏡像去創建Container。 容器(Container):容器可以理解為一個隔離起來的linux環境,用于運行應用,Namespace可以幫助你理解。 倉庫(Repository):如果你會使用Git/Github的話,不難理解,就是用于存放鏡像的場所。

Docker安裝

本文的實驗環境是Ubuntu14.04-amd64。非常需要注意的一點是,目前Docker只支持64位機器。Ubuntu14.04安裝方式有兩種:1)通過系統自帶包安裝和2)通過Docker源安裝。推薦第二種方式,能安裝比較新的版本。

  1. sudo apt-get install apt-transport-https 
  2. sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 
  3. sudo bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list" 
  4. sudo apt-get update 
  5. sudo apt-get install lxc-docker 

#p#

獲取鏡像

首先,推薦到Docker注冊帳號,這樣可以向使用Git/Github那樣使用Docker/Dockerhub。注冊和登陸可通過如下命令完成:

  1. docker login 

注冊之后,可以通過如下命令進行搜索,如搜索ryu:

  1. docker search ryu 

可以從搜索結果中的Star來確定資源的好壞,從而找到合適的images,如muzixing/ryu。然后使用如下命令,將其拉到本地:

  1. docker pull  muzixing/ryu 

下載完成后,可以通過如下命令查看已存在的images

  1. docker images

圖2:images

創建容器

創建容器使用示例如下,-t=tty, -i=interactive, -d=debug, -p=port, --name 可以用于命名container。 其他的命令可以通過--help來查看。

  1. docker run -i -t --name <name> muzixing/ryu:SDN  /bin/bash 

如果你需要對端口映射,或者網絡配置方面的設置,還需要仔細去查看手冊。舉例如下:

  1. docker run -i -t -p  <ip>:<host port>:<container port>  --name <name> muzixing/ryu:SDN  /bin/bash 

以上命令創建并運行了一個名字叫的container,并且將容器內部的端口port映射到主機的某個port,完成了端口映射,允許 外網訪問容器。這是容器與外界通信的方式之一。如果希望***綁定到某個固定的 IP 地址,可以在 Docker 配置文件 /etc/default/docker 中指定 DOCKER_OPTS="--ip=IP_ADDRESS",之后重啟 Docker 服務即可生效。設置網絡訪問的參數默認是 --icc=ture,如果--icc=false,則禁止網絡訪問。

查看容器:

  1. docker ps [-opt] 

-a為全部容器。

查看打印信息可以通過:

  1. dokcer logs <name>

暫停容器:

  1. docker stop <name> 

開啟暫停的容器:

  1. docker start <name> 

重啟容器:

  1. docker restart <name> 

有時候我們開啟了容器,但是沒有開窗口,在后臺運行,可以通過一下命令進入容器:

  1. docker attach <name> 

#p#

部署SDN控制器RYU

首先獲取鏡像:

  1. docker pull muzixing/ryu 

然后創建容器,并將容器的6633端口綁定到主機的6633端口。

  1. docker run -i -t -p 0.0.0.0:6633:6633 --name ryu3.15 muzixing/ryu:SDN /bin/bash 

進入容器之后,運行ryu。

在另一個能ping通運行容器主機的機器上運行mininet,如下圖:


從上圖可以看出控制器IP是172.16.192.128。這個IP地址的主機網卡信息如下:

 

從圖上可以看出,與mininet通信的是主機(實際情況下會是某臺服務器)eth0的地址。但是從下面的圖的容器信息中,可以看出運行的RYU地址是172.17.0.5。為什么可以通信呢?

#p#

容器信息

因為做了端口映射,將主機的所有接口的6633端口的地址都轉發到容器172.17.0.5的6633端口,從而完成數據通信。其實現的原理是:Docker在啟動之后,會創建一個docker0的網橋,從上圖可以看到,然后還會創建veth pair。其中一端掛載在網橋上,如上圖的vethba5f9f3,另一端是容器的網卡eth0,此案例中是172.17.0.5的網卡。其實這相當與一個link。Docker網絡通信原理圖如下:


Docker網絡通信原理圖

在運行容器的主機上使用iptables命令查看NAT規則:


iptables查看NAT

同理mininet,或者其他的應用程序也可以使用容器部署,不再贅述,讀者可自行嘗試。

上傳鏡像

首先需要將部署了應用的容器導出為tar文件??梢允褂胐ocker export container > file 命令。舉例如下:

  1. docker export ryu3.15 > ryu.tar 

然后使用docker import命令將其導入為鏡像:

  1. cat ryu.tar | sudo docker import - muzixing/ryu:sdn 

以上命令為讀取ryu.tar 將其導入成muzixing/ryu:sdn的image。完成之后可通過docker images查看。

確保無誤之后,可將其推送到Dockerhub。

  1. docker push muzixing/ryu 

讀者也可以嘗試更好的自動創建方式。

#p#

網絡配置

我們完全可以將Docker理解成一個獨立的主機,可以對其網絡進行配置,如配置DNS,iptables等??梢酝ㄟ^啟動時配置,也可以通過修改文件的方式配置。

  1. -b BRIDGE or --bridge=BRIDGE --指定容器掛載的網橋 
  2. --bip=CIDR --定制 docker0 的掩碼 
  3. -H SOCKET... or --host=SOCKET... --Docker 服務端接收命令的通道 
  4. --icc=true|false --是否支持容器之間進行通信 
  5. --ip-forward=true|false --請看下文容器之間的通信 
  6. --iptables=true|false --禁止 Docker 添加 iptables 規則 
  7. --mtu=BYTES --容器網絡中的 MTU 

文件配置則如同正常的主機配置,進入到/etc/目錄下,修改制定文件即可。同樣的,Dokcer可以配置網絡鏈接的網橋,可以不選擇docker0網橋,而選擇其他網橋,如使用brctl創建的網橋,或者使用OpenvSwitch創建的網橋,具體操作不再贅述。

后語

工欲善其事,必先利其器。Docker可以允許我們更靈活地使用資源,并且可以很方便地遷移環境。比如以后需要安裝Ryu的同學就不需要再去關注,為什么six版本不夠?為什么gcc報錯這些問題了。只需要有一臺64位的機器,然后安裝Docker,理論上是不會有錯的。然后將鏡像下載下來,創建并運行容易,就可以得到Ryu控制器運行的環境。同理Nginx,Tornado和MySQL等軟件也可以直接獲取,而不需要自己安裝配置環境。這大大加快了生產環境的部署,也顯著提高了資源的利用率,個人認為將在未來對虛擬機產生強烈的沖擊。

本文出自:http://www.muzixing.com/pages/2014/12/03/dockerbu-shu-sdnhuan-jing.html

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

2015-01-04 09:49:37

PHPDocker開發環境

2016-03-02 09:50:09

docker測試環境

2015-06-23 11:01:52

云計算資源池軟件定義網絡

2017-09-08 10:59:05

2017-12-21 15:01:42

2013-11-19 10:55:35

2020-10-30 10:49:37

DockerGPULinux

2022-02-09 15:44:20

RocketMQLinux系統

2013-06-14 09:31:46

VMwareSDNvCloud

2015-09-11 09:15:32

RyuSDN

2013-11-27 09:25:04

IBMSDN災害預防

2015-09-17 13:31:42

ONOSSDN-IP

2013-12-16 09:44:01

OpenDayLighSDN網絡轉發

2013-04-19 11:00:02

SDNLTEHaul移動回傳網絡

2013-10-08 14:04:51

SDN軟件定義網絡

2015-06-29 09:28:08

SDN

2014-08-12 10:02:57

SDNNFVIDC

2022-03-28 18:59:02

DockerFlask深度學習

2015-07-02 10:50:55

SDN

2017-12-22 23:12:44

SDNIBN基于意圖的網絡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国内精品久久精品 | 精品www| 国产精品视频一区二区三区 | 三级免费 | 精彩视频一区二区三区 | 天天久久 | 久久爱黑人激情av摘花 | 中文字幕精品一区二区三区精品 | 亚洲欧洲精品成人久久奇米网 | 国产福利视频导航 | 久久精品国产一区二区三区不卡 | 精品一区二区三区免费视频 | av手机免费在线观看 | 免费看的黄网站 | 国产视频第一页 | 精品亚洲永久免费精品 | 久久精品 | 国产色婷婷久久99精品91 | 国产三级精品三级在线观看四季网 | 国产精品精品久久久 | 亚洲精品一区二区三区在线 | 激情 婷婷 | www.精品国产 | 中文字幕精品一区久久久久 | 国产欧美精品一区二区三区 | 亚洲www啪成人一区二区麻豆 | 国产精品久久久久久久7777 | 黄视频免费在线 | 日中文字幕在线 | 九九精品在线 | 成人午夜高清 | 黄色毛片网站在线观看 | 色偷偷888欧美精品久久久 | 亚洲资源在线 | 成人小视频在线观看 | 日本三级全黄三级三级三级口周 | 欧美激情一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 国产精品污www一区二区三区 | 国产三级电影网站 | 免费看黄色视屏 |