2015年1月3日星期六

Docker创建本地仓库

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
Docker创建本地仓库  阅读原文»

Docker创建本地仓库

Docker是时下相当火热的技术,关于docker的介绍此处就不多说,本文主要介绍下如何在centos6.6环境下配置docker的本地仓库,对于想在局域网内大规模运用docker来说,频繁的从官网仓库下载镜像文件,无论从管理还是在效率上都无法接受。

一:以容器的方式运行registry服务

初次运行,本地不存在registryimage,会自动从官方网站上下载一份,速度较慢

  # docker run -idt -p 5000:5000 --name registry -v /data/registry:/tmp/registry registry  

wKiom1SibgCgp4azAAYhhlHqlhE921.jpg

二:配置Nginx, 需要配置用户验证和https支持

#/usr/local/nginx/sbin/nginx-V

wKiom1SibqHjb9VXAAQEarZ5ark196.jpg

  # cat /usr/local/nginx/conf/extra/docker.conf  # For versions of Nginx > 1.3.9 that include chunked transfer encoding support  # Replace with appropriate values where necessary  upstream docker-registry {   server 127.0.0.1:5000;  }  server {   listen  443;   server_name  registry.fjhb.cn;   ssl on;   ssl_certificate     /etc/ssl/certs/nginx.crt;   ssl_certificate_key /etc/ssl/private/nginx.key;   proxy_set_header Host       $http_host;   # required for Docker client sake   proxy_set_header X-Real-IP  $remote_addr; # pass on real client IP   client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads   # required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486)   chunked_transfer_encoding on;   location / {       # let Nginx know about our auth file       auth_basic              "Restricted";       auth_basic_user_file    docker-registry.htpasswd;       proxy_pass http://docker-registry;   }   location /_ping {       auth_basic off;       proxy_pass http://docker-registry;   }   location /v1/_ping {       auth_basic off;       proxy_pass http://docker-registry;   }  }  

三:配置ssl证书和密码文件

1生成根密钥

  # cd /etc/pki/CA/  # touch ./{serial,index.txt}  # echo "00" > serial  # openssl  genrsa -out private/cakey.pem 2048  

2生成根证书

  # openssl  req -new -x509 -key private/cakey.pem -days 3650 -out cacert.pem  

wKiom1SibxuytRkdAAW6hQK0d9I207.jpg

3:生成nginxkeynginx.csr证书请求文件

  # cd /etc/ssl/  # openssl genrsa -out nginx.key 2048  # openssl  req -new -key nginx.key -out nginx.csr  

wKiom1Sib0OxlfMZAAidSOMp6WU745.jpg

4私有CA根据请求来签发证书

  # openssl ca -in nginx.csr -days 3650 -out nginx.crt  

wKiom1Sib3SC5tyMAAfGjOrcG-I265.jpg

  # cp /etc/pki/tls/certs/ca-bundle.crt{,.bak}  # cat /etc/pki/CA/cacert.pem >> /etc/pki/tls/certs/ca-bundle.crt  #因为是自签的证书,此步骤的意义在于让系统接受该证书  

5:复制生成的证书文件到相应位置

  # cp nginx.crt  certs/  # cp nginx.key  private/  

6:使用htpasswd工具创建密码文件

  # yum -y install httpd-tools  # htpasswd -c /usr/local/nginx/conf/docker-registry.htpasswd yang  New password:  Re-type new password:  Adding password for user yang  # htpasswd /usr/local/nginx/conf/docker-registry.htpasswd lin  New password:  Re-type new password:  Adding password for user lin  

四:启动nginx

  # /usr/local/nginx/sbin/nginx  -t  # /usr/local/nginx/sbin/nginx  # netstat -ntpl |grep nginx  

wKiom1Sib_nizmheAANEYqizGvU149.jpg

五:测试

1本地测试push

  # docker login -u yang -p 123 -e ylw@fjhb.cn registry.fjhb.cn  # docker images  # docker tag registry registry.fjhb.cn/registry:v2  # docker push registry.fjhb.cn/registry:v2  

wKioL1SicODyG-GKAAmXqnP-06Q288.jpg

2:其他客户端测试pullpush

  # tail -1 /etc/hosts  192.168.1.12    registry.fjhb.cn  # scp /etc/pki/CA/cacert.pem root@192.168.1.227:/root  # cp /etc/pki/tls/certs/ca-bundle.crt{,.bak}  # cat cacert.pem >> /etc/pki/tls/certs/ca-bundle.crt  # curl -u yang:123  https://registry.fjhb.cn/v1/search  # service docker restart  # docker  login -u yang -p 123 -e ylw@fjhb.cn https://registry.fjhb.cn  Login Succeeded  # docker  images  # docker tag centos6 registry.fjhb.cn/centos6  # docker push registry.fjhb.cn/centos6  

wKioL1SicTTT2h-mAATwsEUVQ_M942.jpg

  # docker  pull registry.fjhb.cn/registry:v2  

wKiom1SicK6RRSuHAAVQbJvNYFk814.jpg

异常处理:

wKiom1SicNuD29cDAAX49u4uxYM811.jpg

  # scp  /etc/pki/CA/cacert.pem root@192.168.2.227:/root  # cat cacert.pem >> /etc/ssl/certs/ca-bundle.crt  

参考:

http://blog.94it.net/post/openssl-ca.html

http://segmentfault.com/blog/seanlook/1190000000801162

本文出自 "斩月" 博客,谢绝转载!

登录中小企业的服务器虚拟化探讨  阅读原文»

中小企业的服务器虚拟化探讨

以下内容仅为我个人看法,不带任何厂商意见和观点,并无诋毁任何一家厂商和品牌的意思:

发展至今,服务器虚拟化已经是一个非常成熟且稳定的产物,无论小企业还是大企业都在使用着服务器虚拟化带来的各种好处,如可扩展性、资源动态调整等,但在我的心中无论企业的大小还是需要选择相对稳定的服务器虚拟化产品才是最佳的,自然我心中的就认可VMware和Microsoft了。

VMware和Microsoft属于全球的知名大厂商,自然旗下的产品不用我多说大家都非常耳熟能详,VMware作为服务器虚拟化的老大,地位堪比桌面操作系统的Microsoft;Microsoft作为桌面系统的老大,地位堪比服务器虚拟化的VMware。各有千秋各有特色。

现在的企业如果只是为了做服务器虚拟化而做服务器虚拟化的话,那么选择这2家的产品我认为是没有什么好说的,甚至您可以认为VMware的稳定兼容性广就是我选择的理由,我觉得我是您也会这么认为。但如果我们服务器虚拟化只是平台,我们要让多种企业的服务与应用深度高度结合的话,那我更会选择善于深度集成融合的Microsoft,为什么呢?

从中小企业讲,业务是驱动IT发展的命脉,那么依托在IT化的业务承载系统还是很多在x86的平台上,自然我认为Microsoft还是蛮多的,那怎么让我们从IT基础架构的层面到业务层面当中实现一些自动化一些深度集成相互融会贯通的东西我觉得作为IT更有价值。

从底层讲,构建服务器虚拟化只是构建了资源池,但我们希望资源池能是智能的,能被前端的业务所智能检测和调动起来的,而不是单独成为一个不太灵活的资源池,我们需要上下联动协作。这里的联动协作是IT内部软硬件之间的联动协作。有个最好的例子就是WindowsAzure。

从我们从前台创建虚拟网络,到创建虚拟机,到实现资源的无限动态扩展,相信后面的软硬件资源联动调动是非常智能且酷炫的。但实现这些高大尚的功能除了一些细节定制化的开发外,后台的平台和联动协作还是非常值得我们去借鉴的。

所以我认为如果企业从业务的角度和从IT建设的角度都应该着眼按照这个方向去规划去选择,无论选择的是哪个平台,只要能实现最终目标就是好的。哪怕目标对于现在的企业还不需要,但大的方向确定且研究可行的话,分步逐渐去完善还是可以的。

以上是我的个人看法和拙见,大家见笑了,我也是最近在做一个项目中觉得这个价值非常不错,蛮有意思;光放文字还是不够吸引眼球啊,我来放点图吧,嘿嘿:

实现服务器虚拟化,服务器自己进行资源负载调配,业务不中断:

未命名图片

对服务器虚拟化平台进行监控(没有达到硬件级别)和域控监控:

AD

虚拟化架构

数据库我们也展示一下:

QQ图片20141230095458

QQ图片20141230095506

本文出自 "ZJS的微软桌面虚拟化" 博客,请务必保留此出处http://rdsrv.blog.51cto.com/2996778/1597636

阅读更多内容

没有评论:

发表评论