建站学习网,专业提供各类建站教程,网页素材,SEO资讯等建站资源!

网站模板_网站源码_网站素材_建站教程_建站学习网

当前位置:建站学习网 > DIV+CSS教程 > DIV CSS教程 >

搭建Docker私有仓库的详细教程

更新时间:2016-12-23整理编辑:建站学习网阅读:0

   1.Docker registry 说明

  本文记录的个人完整搭建docker registry操作过程,官方虽然提供了Docker Hub作为一个公开的集中仓库,但是天朝的网络可想而知,第一次pull一个镜像不是失败就是时间很长,为了解决这个问题需要创建一个私有的仓库在本地pull 本地push。我使用的docker版本是:1.5.0

  2、安装docker-registry

  代码如下:

  docker run -d -e SETTINGS_FLAVOR=dev -e STORAGE_PATH=/tmp/registry -v /alidata/registry:/tmp/registry -p 5000:5000 registry

  # 如果本地没有下载过docker-registry,则首次会pull registry 运行时会映射路径和端口,以后就可以从/data/registry下找到私有仓库

  3、客户端上的操作

  #从本地仓库上获取有哪些镜像

  代码如下:

  curl -X GET http://registry.wpython.com:5000/v1/search

  curl http://registry.wpython.com:5000/v1/search

  {"num_results": 1, "query": "", "results": [{"description": "", "name": "library/centos6"}]}

  # 拉取到本地

  代码如下:

  docker pull library/centos6

  # tag 一个镜像

  代码如下:

  docker tag 8552ea9a16f9 registry.wpython.com:5000/centos6_x86_64.mini

  # 将新的docker images push 到本地仓库

  代码如下:

  docker push registry.wpython.com:5000/centos6_x86_64.mini

  4、加入nginx认证

  Docker 启动监听端口后,使用的是 http,可以远程来管理 Docker 主机。

  这样的场景存在弊端,API 层面是没有提供用户验证、Token 之类身份验证功能,任何人都可以通过地址加端口来控制 Docker 主机,为了避免这样的情况发生,Docker 官方也支持 https 方式,不过需要我们自己来生成证书。

  新版本的docker 也强制必须使用https否则会报错

  # 安装nginx过程略

  创建一个登陆用户(如果没有htpasswd命令 请安装httpd-tools这个包)

  代码如下:

  htpasswd -c /alidata/server/nginx/docker-registry.htpasswd admin

  New password:

  Re-type new password:

  Adding password for user admin

  # 生成根密钥

  代码如下:

  cd /etc/pki/CA/

  openssl genrsa -out private/cakey.pem 2048

  # 生成根证书

  代码如下:

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

  Country Name (2 letter code) [AU]:CN

  State or Province Name (full name) [Some-State]:Brijing

  Locality Name (eg, city) []:Chaoyang

  Organization Name (eg, company) [Internet Widgits Pty Ltd]:

  Organizational Unit Name (eg, section) []:

  Common Name (e.g. server FQDN or YOUR name) []:registry.wpython.com

  Email Address []:

  # 为nginx服务器生成ssl密钥

  代码如下:

  cd /alidata/server/nginx/ssl

  openssl genrsa -out nginx.key 2048

  # 为nginx生成的证书签署请求

  代码如下:

  openssl req -new -key nginx.key -out nginx.csr

  You are about to be asked to enter information that will be incorporated

  into your certificate request.

  What you are about to enter is what is called a Distinguished Name or a DN.

  There are quite a few fields but you can leave some blank

  For some fields there will be a default value,

  If you enter '.', the field will be left blank.

  -----

  Country Name (2 letter code) [AU]:CN

  State or Province Name (full name) [Some-State]:Beijing

  Locality Name (eg, city) []:Chaoyang

  Organization Name (eg, company) [Internet Widgits Pty Ltd]:

  Organizational Unit Name (eg, section) []:

  Common Name (e.g. server FQDN or YOUR name) []:registry.wpython.com

  Email Address []:

  Please enter the following 'extra' attributes

  to be sent with your certificate request

  A challenge password []:

  An optional company name []:

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

  代码如下:

  openssl ca -in nginx.csr -out nginx.crt

  # 如果报如下错误:

  Using configuration from /usr/local/ssl/openssl.cnf

  /etc/pki/CA/index.txt: No such file or directory

  unable to open '/etc/pki/CA/index.txt'

  140137408210600:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('/etc/pki/CA/index.txt','r')

  140137408210600:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:

  # 执行以下命令

  代码如下:

  cd /etc/pki/CA/

  mkdir newcerts

  touch index.txt

  touch serial

  echo 01 > serial

  cd -

  openssl ca -in nginx.csr -out nginx.crt

  Using configuration from /usr/local/ssl/openssl.cnf

  Check that the request matches the signature

  Signature ok

  Certificate Details:

  Serial Number: 1 (0x1)

  Validity

  Not Before: May 12 04:15:08 2015 GMT

  Not After : May 11 04:15:08 2016 GMT

  Subject:

  countryName = CN

  stateOrProvinceName = Beijing

  organizationName = Internet Widgits Pty Ltd

  commonName = registry.wpython.com

  emailAddress = 739827282@qq.com

  X509v3 extensions:

  X509v3 Basic Constraints:

  CA:FALSE

  Netscape Comment:

  OpenSSL Generated Certificate

  X509v3 Subject Key Identifier:

  B5:20:C7:47:26:D9:26:54:12:F7:36:7E:4E:3A:F0:D9:0E:2C:F7:BD

  X509v3 Authority Key Identifier:

  keyid:93:F7:86:72:1B:2B:24:CD:AF:24:EF:53:F4:E1:FA:EC:E7:70:1A:90

  Certificate is to be certified until May 11 04:15:08 2016 GMT (365 days)

  Sign the certificate? [y/n]:y

  1 out of 1 certificate requests certified, commit? [y/n]y

  Write out database with 1 new entries

  Data Base Updated

  # 发现根证书

  代码如下:

  # cp /etc/pki/tls/certs/ca-bundle.crt{,.bak} 备份以防出错

  # cat /etc/pki/CA/cacert.pem >> /etc/pki/tls/certs/ca-bundle.crt

  # 创建nginx配置文件

  代码如下:

  # vi /alidata/server/nginx/conf/vhosts/www.wpython.com.conf

  upstream docker-registry {

  server localhost:5000;

  }

  server {

  listen 8080;

  server_name registry.wpython.com;

  # enabled ssl

  ssl on;

  ssl_certificate /alidata/server/nginx/ssl/nginx.crt;

  ssl_certificate_key /alidata/server/nginx/ssl/nginx.key;

  proxy_set_header Host $http_host;

  proxy_set_header X-Real-IP $remote_addr;

  client_max_body_size 0;

  chunked_transfer_encoding on;

  location / {

  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;

  }

  }

  # 完成测试

  代码如下:

  # docker login https://registry.wpython.com:8080

  Username: admin

  Password:

  Email: 739827282@qq.com

  Login Succeeded

本文网址:https://www.dedexuexi.com/divcss/jc/1360.html

本站部分文章搜集与网络,如有侵权请联系本站,转载请说明出处。

标签:技巧
收藏此文 赞一下!() 打赏本站

如本文对您有帮助,就请建站学习网抽根烟吧!

支付宝打赏
微信打赏
CSS3中的opacity属性使用教程
« 上一篇2016年12月23日
详解CSS3中使用gradient实现渐变效果的方法
2016年12月23日下一篇 »
  • DIV CSS如何给文字字体添加下划线?
    0阅读
    在css中可以使用text-decoration属性或border-bottom属性来给文字添加下划线样式。下面本篇文章就来给大家介绍一下,希望对大家有所帮助。方法1:使用text-decoration属性设置css的text-decoration属性用于指定添加到文本的修饰,其underline属...
  • 纯CSS3实现带动画效果导航菜单无需js
    0阅读
    随着互联网的发展,网页能表现的东西越来越多。由最开始单纯的文字和链接构成的网页,到后来的表格布局,再到div+css模式,现在发展到了 html+css3。网页能表达的东西越来越多,css3兴起已经
  • CSS定义超链接四个状态的正确顺序L-V-H-A
    0阅读
    css定义超链接是要有先后顺序的。否则,在某些浏览器里面有可能会出现某个样式不起作用的bug。不能正确显示想要的效果。 CSS属性的排列顺序: L-V-H-A 。 L-V-H-A是link、visited、hover、active的简写
  • 在ie7下css居中样式text-align:center;偏左问题解决方法
    0阅读
    css样式text-align:center;在ie7下偏左问题,想必有很多朋友的遇到过吧,下面有个不错的方法,大家可以参考下,希望对大家有所帮助 复制代码 代码如下: body { text-align:center; } 用ie7打开是居左的。
  • 对div盒子模型使用心得总结
    0阅读
    相信每一个从事web开发的人对盒子模型都有一个特殊的理解吧,本文也有一个理解并附有示例代码,喜欢的朋友可以参考下 盒子模型的计算 外边距(margin)+边框(border)+内边距(padding)+内容(content
 
QQ在线咨询