还存在的问题,如果通过nginx 转发推过去的镜像,在web页面显示比较慢,需要等定时任务发现了才能及时显示出来,如果通过b.p.xxx.cn:5000加端口push 的镜像就比较快显示出来。只影响到显示,不影响正常使用。

获取代码:git clone https://github.com/SUSE/Portus.git

cd Portus

vim docker-compose.yml

PS:   portus 这个项目更换镜像的话,就需要重新创建管理员账号,既然不是保存在MYSQL里面的,奇葩。(所以下次mysql也直接用docker启就可以了)

模板:

version: '2'

services:
portus:
build: .
image: opensuse/portus:development #默认不是这个镜像,默认的镜像有BUG作者说改成这个可以正常运行
command: bash /srv/Portus/examples/development/compose/init
environment:
- PORTUS_MACHINE_FQDN_VALUE=b.p.xxx.cn #域名,认证使用
- PORTUS_PUMA_HOST=0.0.0.0:3000 - PORTUS_DB_HOST=db
- PORTUS_DB_PASSWORD=portus - RAILS_SERVE_STATIC_FILES=true
ports:
- 3000:3000
links:
- db
volumes:
- .:/srv/Portus #这几个项目共用一份代码,否者授权的时候有异常,会出现不用登录也能获取镜像 crono:
image: opensuse/portus:development
command: ./bin/crono
depends_on:
- portus
environment:
- PORTUS_MACHINE_FQDN_VALUE=b.p.xxx.cn - PORTUS_DB_HOST=db #域名,认证使用
- PORTUS_DB_PASSWORD=portus
volumes:
- .:/srv/Portus
links:
- db webpack:
image: kkarczmarczyk/node-yarn:6.9-slim
command: bash /srv/Portus/examples/development/compose/bootstrap-webpack
working_dir: /srv/Portus
volumes:
- .:/srv/Portus db:
image: library/mariadb:10.0.23
environment:
MYSQL_ROOT_PASSWORD: portus registry:
image: library/registry:2.3.1
environment:
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /registry_data
REGISTRY_STORAGE_DELETE_ENABLED: "true" REGISTRY_HTTP_ADDR: 0.0.0.0:5000
REGISTRY_HTTP_DEBUG_ADDR: 0.0.0.0:5001 REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE: /etc/docker/registry/portus.crt REGISTRY_AUTH_TOKEN_REALM: http://b.p.xxx.cn:3000/v2/token
REGISTRY_AUTH_TOKEN_SERVICE: b.p.xxx.cn:5000
REGISTRY_AUTH_TOKEN_ISSUER: b.p.xxx.cn REGISTRY_NOTIFICATIONS_ENDPOINTS: >
- name: portus
url: http://b.p.xxx.cn:3000/v2/webhooks/events
timeout: 2000ms
threshold: 5
backoff: 1s
volumes:
- /registry_data:/registry_data #这个目录是保存仓库镜像的,挂载出来永久保存
- ./examples/development/compose/portus.crt:/etc/docker/registry/portus.crt:ro #这个是Portus的密钥,交互用的
ports:
- 5000:5000
- 5001:5001
links:
- portus

我使用的这个版本有BUG,进过查看日志,发现同时还需要修改文件:

vim config/config.yml

206 machine_fqdn:
207 value: "b.p.xxx.cn" #改成自己的地址

然后docker-compose up 启动即可。

访问web页面: b.p.xxx.cn:3000

需要填写仓库地址,两个都添加 b.p.xxx.cn:5000即可。

由于其他人访问需要经过https:下面给出 nginx + ssl 的配置

vim b.p.xxx.cn.conf

upstream klg-registry {
server registry:5000 weight=1;
} server {
listen 443;
server_name b.p.xxx.cn;
ssl on;
ssl_certificate /nas/conf/tenginx/vhost/Nginx/1_b.p.xxx.cn_bundle.crt;
ssl_certificate_key /nas/conf/tenginx/vhost/Nginx/2_b.p.xxx.cn.key;
location /{
client_max_body_size 10000m;
proxy_pass http://klg-registry;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
access_log /var/log/tenginx/b.p.xxx.cn.log access;
}

我的实例:

version: '2'

services:
portus:
hostname: portus
image: r.p.xxx.cn/registry:portus2
environment:
- PORTUS_MACHINE_FQDN_VALUE=b.p.xxx.cn
- PORTUS_PUMA_HOST=0.0.0.0:3000
- PORTUS_DB_HOST=192.168.0.1
- PORTUS_DB_PASSWORD=portus
- RAILS_SERVE_STATIC_FILES=true
ports:
- 3000:3000
volumes:
- /opt/Portus:/srv/Portus crono:
image: r.p.xxx.cn/registry:crono-new
depends_on:
- portus
environment:
- PORTUS_MACHINE_FQDN_VALUE=b.p.xxx.cn
- PORTUS_DB_HOST=192.168.0.1
- PORTUS_DB_PASSWORD=portus
volumes:
- /opt/Portus:/srv/Portus webpack:
image: r.p.xxx.cn/registry:webpack-new
working_dir: /srv/Portus
volumes:
- /opt/Portus:/srv/Portus registry:
image: r.p.xxx.cn/registry:registry2-new
hostname: registry
environment:
REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /registry_data
REGISTRY_STORAGE_DELETE_ENABLED: "true" REGISTRY_HTTP_ADDR: 0.0.0.0:5000
REGISTRY_HTTP_DEBUG_ADDR: 0.0.0.0:5001 REGISTRY_AUTH_TOKEN_ROOTCERTBUNDLE: /etc/docker/registry/portus.crt REGISTRY_AUTH_TOKEN_REALM: http://b.p.xxx.cn:3000/v2/token
REGISTRY_AUTH_TOKEN_SERVICE: b.p.xxx.cn:5000
REGISTRY_AUTH_TOKEN_ISSUER: b.p.xxx.cn REGISTRY_NOTIFICATIONS_ENDPOINTS: >
- name: portus
url: http://b.p.xxx.cn:3000/v2/webhooks/events
timeout: 2000ms
threshold: 5
backoff: 1s
volumes:
- /registry_data:/registry_data
- /opt/Portus/examples/development/compose/portus.crt:/etc/docker/registry/portus.crt:ro
ports:
- 5000:5000
- 5001:5001
links:
- portus

nginx+ssl+Portus+registry docker仓库的更多相关文章

  1. 通过API获取 Portus+registry docker仓库信息

    接口获取docker centos 镜像的 tag 列表脚本 # -*- encoding:utf-8 -*- import requests import json ""&quo ...

  2. 基于IP的docker private registry 私有仓库的搭建

    鉴于国内的网络环境,如果公司内部大量使用docker,镜像上传下载将是个非常耗时的工作,搭建一个私有仓库可以很好的解决自有镜像的存储,如果你在私有网络,不能使用域名的话,那么本文可以作为一个很好的例子 ...

  3. Docker registry私有仓库(七)

    Docker registry私有仓库搭建基本几步流程(采用nginx+认证的方式) 1. 申请免费的ssl证书 https://buy.wosiqn.com/free 2. 设置nginx ssl证 ...

  4. Docker registry 私有仓库镜像查询、删除、上传、下载 shell

    #Docker官方私有仓库registry #官方只提供了API接口,不方便使用,就写了个shell #docker-registry安装配置http://www.cnblogs.com/elvi/p ...

  5. Docker 自建私有Registry 私有仓库

    目录 说明 介绍 原理 搭建 查看配置文件 启动 上传和下载镜像测试 测试上传镜像 测试下载镜像 说明 记录搭建 docker 私有仓库步骤 介绍 docker镜像可以托管到dockerhub中,跟代 ...

  6. docker registry 私有仓库 安装配置、查询、删除

    #++++++++++++++++++++++++++++++ #docker-registry 私有仓库 #搜索,下载register镜像 docker search registry docker ...

  7. Ubuntu 搭建docker registry 私有仓库

    一.为什么要搭建 docker 私有仓库 原因有几个: 项目需要,不希望将项目放到 docker hub 上. 环境需求,考虑网络.效率的问题,希望在私有服务器上建立自用的仓库,提高便利性和访问速度. ...

  8. Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/manifests/1.14-alpine: Get https://auth.docker.io/token?scope=repository%3Alibrary%2Fnginx%3Apull&service=registry.docker.

    docker pull 镜像时报错: Error response from daemon: Get https://registry-1.docker.io/v2/library/nginx/man ...

  9. 8. docker image 的发布 与 docker registry 私有仓库

    一.分享image 1.注册 登陆 docker hub https://hub.docker.com/ 2.在本地 使用 docker login 输入 注册的账号密码 进行登陆 3.使用 dock ...

随机推荐

  1. Bcrypt介绍

    Bcrypt把算法版本.计算次数和salt都放到hash值里面去了 Stored in the database, a bcrypt "hash" might look somet ...

  2. C++学习笔记之——内联函数,引用

    本文为原创作品,转载请注明出处 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing/ 作者:晨凫 ...

  3. 非旋转Treap——普通平衡树

    扔板跑…… #include<bits/stdc++.h> #define N 100010 #define mp make_pair using namespace std; typed ...

  4. dubbo消费方超时处理

    在我们分布式系统中,远程调用可能随时会出现调用超时,然后抛异常 在dubbo内部,默认设置的是500ms(好像是),所以,对于crud事物大的系统来讲肯定是要自定义超时时间咯,作为消费方,自然是优先级 ...

  5. 我的一次安装oracle的过程

    1.在装oracle之前,先安装.net3.5 2.然后正常安装oracle,一直next 3.装完oracle后,安装plsql dev工具,打开工具,发现没有connect as,是需要进行一些配 ...

  6. 【转】JSP自定义标签

    转载自:http://www.cnblogs.com/edwardlauxh/archive/2010/05/20/1918587.html tld标签的描述文件 标签的描述文件是一个描述整个标签库标 ...

  7. 两个sql设计方案的比较

    我有一个买方表Buyer,大概1万条记录:一个卖方表Sale,大概5万条记录.有一些买方和卖方之间是有某种关联的,这种关联关系被记录在Partner表里,Partner表中的关键字段包括BuyerID ...

  8. hdu 5167(dfs)

    Fibonacci Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...

  9. PHP7中php.ini、php-fpm和www.conf的配置(转)

    根据前文 <2015博客升级记(五):CentOS 7.1编译安装PHP7> 的 configure 编译参数设定,安装后的PHP7配置文件所在路径是 /usr/local/php7/et ...

  10. RESTful 接口实现简明指南

    REST 简介 REST 是一个术语的缩写,REpresentational State Transfer,中文直译「表征状态转移」,这是个很拗口的词.我的建议是先不要强行理解,直接看怎么做,等对实施 ...