当前位置:云计算行业动态 → 正文

叫板OpenStack:八步用Docker实现私有云

责任编辑:editor004 |来源:企业网D1Net  2015-04-09 21:08:49 本文摘自:51CTO

看到各大厂商的云主机,会不会觉得高大上?目前大公司的主流方案是OpenStack,比如某个公司的私有云

其实,我们可以通过Docker可以很容易实现自己的私有云。

下面进入正题。

假设你所在的公司拥有一台功能强悍的服务器,假设是centos,但开发人员,测试人员如果都在这一台主机上进行开发,测试,后果是灾难性的,但由于只有一 台服务器,你们老板甚至还想把这剩余的性能榨取出来搭建一些服务卖给大众...以往的话,开发,测试人员肯定要摔键盘了,这不是坑爹么?但如果你会 Docker,就能很容易实现这一目标,升职加薪,当上总经理,出任CEO,赢取白富美,迎来人生的巅峰呢!

是不是有点小激动了?来吧,哥教你怎么做。

一.升级Centos内核

官方推荐内核使用3.8以上,那我们升到长期稳定版的3.10.

[root@iZ2893wjzgyZ ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

[root@iZ2893wjzgyZ ~]# rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

[root@iZ2893wjzgyZ ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y [root@iZ2893wjzgyZ ~]# vim /etc/grub.conf default=1 改为default=0 [root@iZ2893wjzgyZ ~]# reboot [root@iZ2893wjzgyZ ~]# uname -a Linux iZ2893wjzgyZ 3.10.65-1.el6.elrepo.x86_64 #1 SMP Sat Jan 17 10:36:35 EST 2015 x86_64 x86_64 x86_64 GNU/Linux

二.安装docker

[root@iZ2893wjzgyZ ~]# yum install http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@iZ2893wjzgyZ ~]# yum install docker-io

三.启动docker

[root@iZ2893wjzgyZ ~]# service docker start Starting cgconfig service: [ OK ] Starting docker: [ OK ]

四.获取镜像

由于镜像仓库在国内,国内慢的令人发指,推荐有import方式使用镜像(此例采用的此种镜像方案可以很容易安装ssh服务),在http://openvz.org/Download/templates/precreated中有很多压缩的镜像文件,可以将这些文件下载后采用import方式使用镜像

看到各大厂商的云主机,会不会觉得高大上?目前大公司的主流方案是OpenStack,其实,我们可以通过Docker可以很容易实现自己的私有云。

五.实现sshd,在Base镜像基础上生成一个新镜像

#docker run -t -i ubuntu:base /bin/bash

root@050f6efc5ed6:/# vim /etc/apt/sources.list

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

root@050f6efc5ed6:/# apt-get update

安装supervisor服务

root@050f6efc5ed6:/# apt-get supervisor

root@050f6efc5ed6:/# cp supervisord.conf conf.d/

root@050f6efc5ed6:/# cd conf.d/

root@050f6efc5ed6:/# vi supervisord.conf

; supervisor config file

[unix_http_server]

file=/var/run/supervisor.sock ; (the path to the socket file)

chmod=0700 ; sockef file mode (default 0700)

[supervisord]

logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)

pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)

childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)

nodaemon=true ;(修改该软件的启动模式为非daemon,否则docker 在执行的时候会直接退出)

[include]

files = /etc/supervisor/conf.d/*.conf

[program:sshd]

command = /usr/sbin/sshd -D ;

root@050f6efc5ed6:/# mkdir /var/run/sshd

root@050f6efc5ed6:/# passwd root

root@050f6efc5ed6:/# vi /etc/ssh/sshd_config

root@050f6efc5ed6:/# exit

退出之后自动生成一个容器,接下来把容器commit生成封装了sshd的镜像

六.开始分配容器

[root@iZ2893wjzgyZ tmp]# docker run -p 301:22 -d --name test ubuntu /usr/bin/supervisord

[root@iZ2893wjzgyZ tmp]# docker run -p 302:22 -d --name dev ubuntu /usr/bin/supervisord

[root@iZ2893wjzgyZ tmp]# docker run -p 303:22 -d --name client1 ubuntu /usr/bin/supervisord

.......

[root@iZ2893wjzgyZ tmp]# docker run -p xxxxx:22 -d --name clientN ubuntu /usr/bin/supervisord

让我们进入容器看一看,瞧一瞧(114.215.86.228是宿主机的IP)

叫板OpenStack:八步用Docker实现私有云

通过Xshell即可进入。

这样就顺利隔离了N个容器,且每一个都是以党中央centos领导下的纯净的ubuntu系统,按这种分配方式,所有容器性能和宿主机一样,让我们看一看:

Centos:

容器:test

七.搭建自己的私有仓库

老板现在用这台闲置的主机赚了很多钱,于是公司快速发展,老板尝到甜头,又买来了几十台服务器,这时候,抠门老板想了想,每台主机这么搞一次,我岂不是要多给几天工钱?

服务的封装才是Docker的杀手锏,怎么可能让这种工作重复数十次?我们可以搭建自己的私有仓库。有点类似github的方式,将封装好的镜像push到仓库,其他主机装好docker后,pull下来即可,在这里不做说明。

八.扩展

不同人群需要的主机性能不同,总不能所有的人都分配一样的主机吧?这就涉及到容器的管理了,老板意识到这个问题,有一天对开发说,你看看人家openstack管理界面那么高大上,还能将不同主机切割不同的性能,我们为什么不可以?然后老板很快得到满意的方案:Kubernetes(有很多其他方案可以实现)

Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台.

总结:经过这八个步骤,大概就已经实现了私有云的基本功能,其实Docker能做的事情远不如此,本人才疏学浅,使用不久,这里只阐述想到的这一种方案。

关键字:DockerrootOpenStack

本文摘自:51CTO

x 叫板OpenStack:八步用Docker实现私有云 扫一扫
分享本文到朋友圈
当前位置:云计算行业动态 → 正文

叫板OpenStack:八步用Docker实现私有云

责任编辑:editor004 |来源:企业网D1Net  2015-04-09 21:08:49 本文摘自:51CTO

看到各大厂商的云主机,会不会觉得高大上?目前大公司的主流方案是OpenStack,比如某个公司的私有云

其实,我们可以通过Docker可以很容易实现自己的私有云。

下面进入正题。

假设你所在的公司拥有一台功能强悍的服务器,假设是centos,但开发人员,测试人员如果都在这一台主机上进行开发,测试,后果是灾难性的,但由于只有一 台服务器,你们老板甚至还想把这剩余的性能榨取出来搭建一些服务卖给大众...以往的话,开发,测试人员肯定要摔键盘了,这不是坑爹么?但如果你会 Docker,就能很容易实现这一目标,升职加薪,当上总经理,出任CEO,赢取白富美,迎来人生的巅峰呢!

是不是有点小激动了?来吧,哥教你怎么做。

一.升级Centos内核

官方推荐内核使用3.8以上,那我们升到长期稳定版的3.10.

[root@iZ2893wjzgyZ ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

[root@iZ2893wjzgyZ ~]# rpm -ivh http://www.elrepo.org/elrepo-release-6-5.el6.elrepo.noarch.rpm

[root@iZ2893wjzgyZ ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y [root@iZ2893wjzgyZ ~]# vim /etc/grub.conf default=1 改为default=0 [root@iZ2893wjzgyZ ~]# reboot [root@iZ2893wjzgyZ ~]# uname -a Linux iZ2893wjzgyZ 3.10.65-1.el6.elrepo.x86_64 #1 SMP Sat Jan 17 10:36:35 EST 2015 x86_64 x86_64 x86_64 GNU/Linux

二.安装docker

[root@iZ2893wjzgyZ ~]# yum install http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm

[root@iZ2893wjzgyZ ~]# yum install docker-io

三.启动docker

[root@iZ2893wjzgyZ ~]# service docker start Starting cgconfig service: [ OK ] Starting docker: [ OK ]

四.获取镜像

由于镜像仓库在国内,国内慢的令人发指,推荐有import方式使用镜像(此例采用的此种镜像方案可以很容易安装ssh服务),在http://openvz.org/Download/templates/precreated中有很多压缩的镜像文件,可以将这些文件下载后采用import方式使用镜像

看到各大厂商的云主机,会不会觉得高大上?目前大公司的主流方案是OpenStack,其实,我们可以通过Docker可以很容易实现自己的私有云。

五.实现sshd,在Base镜像基础上生成一个新镜像

#docker run -t -i ubuntu:base /bin/bash

root@050f6efc5ed6:/# vim /etc/apt/sources.list

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

root@050f6efc5ed6:/# apt-get update

安装supervisor服务

root@050f6efc5ed6:/# apt-get supervisor

root@050f6efc5ed6:/# cp supervisord.conf conf.d/

root@050f6efc5ed6:/# cd conf.d/

root@050f6efc5ed6:/# vi supervisord.conf

; supervisor config file

[unix_http_server]

file=/var/run/supervisor.sock ; (the path to the socket file)

chmod=0700 ; sockef file mode (default 0700)

[supervisord]

logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)

pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)

childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)

nodaemon=true ;(修改该软件的启动模式为非daemon,否则docker 在执行的时候会直接退出)

[include]

files = /etc/supervisor/conf.d/*.conf

[program:sshd]

command = /usr/sbin/sshd -D ;

root@050f6efc5ed6:/# mkdir /var/run/sshd

root@050f6efc5ed6:/# passwd root

root@050f6efc5ed6:/# vi /etc/ssh/sshd_config

root@050f6efc5ed6:/# exit

退出之后自动生成一个容器,接下来把容器commit生成封装了sshd的镜像

六.开始分配容器

[root@iZ2893wjzgyZ tmp]# docker run -p 301:22 -d --name test ubuntu /usr/bin/supervisord

[root@iZ2893wjzgyZ tmp]# docker run -p 302:22 -d --name dev ubuntu /usr/bin/supervisord

[root@iZ2893wjzgyZ tmp]# docker run -p 303:22 -d --name client1 ubuntu /usr/bin/supervisord

.......

[root@iZ2893wjzgyZ tmp]# docker run -p xxxxx:22 -d --name clientN ubuntu /usr/bin/supervisord

让我们进入容器看一看,瞧一瞧(114.215.86.228是宿主机的IP)

叫板OpenStack:八步用Docker实现私有云

通过Xshell即可进入。

这样就顺利隔离了N个容器,且每一个都是以党中央centos领导下的纯净的ubuntu系统,按这种分配方式,所有容器性能和宿主机一样,让我们看一看:

Centos:

容器:test

七.搭建自己的私有仓库

老板现在用这台闲置的主机赚了很多钱,于是公司快速发展,老板尝到甜头,又买来了几十台服务器,这时候,抠门老板想了想,每台主机这么搞一次,我岂不是要多给几天工钱?

服务的封装才是Docker的杀手锏,怎么可能让这种工作重复数十次?我们可以搭建自己的私有仓库。有点类似github的方式,将封装好的镜像push到仓库,其他主机装好docker后,pull下来即可,在这里不做说明。

八.扩展

不同人群需要的主机性能不同,总不能所有的人都分配一样的主机吧?这就涉及到容器的管理了,老板意识到这个问题,有一天对开发说,你看看人家openstack管理界面那么高大上,还能将不同主机切割不同的性能,我们为什么不可以?然后老板很快得到满意的方案:Kubernetes(有很多其他方案可以实现)

Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩 容缩容等整一套功能,本质上可看作是基于容器技术的mini-PaaS平台.

总结:经过这八个步骤,大概就已经实现了私有云的基本功能,其实Docker能做的事情远不如此,本人才疏学浅,使用不久,这里只阐述想到的这一种方案。

关键字:DockerrootOpenStack

本文摘自:51CTO

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^