还存在的问题,如果通过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. Make recursive

    folder structure: Makefile t1/Makefile t1/t1.c t2/Makefile t2/t2.c Makefile SUBDIRS = t1 t2 all: for ...

  2. Linux服务器中OpenSSH的源码编译与升级

                      Linux服务器中OpenSSH的源码编译与升级 https://www.oschina.net/question/12_7383    

  3. Linux下mysql命令 导入 导出sql文件

    导出数据库 直接使用命令: mysqldump -u root -p abc >abc.sql 然后回车输入密码就可以了: mysqldump -u 数据库链接用户名 -p  目标数据库 > ...

  4. [ 手记 ] 关于tomcat开机启动设置问题

    今天尝试将tomcat设置为开机启动,大家都知道只需要将启动脚本添加到/etc/rc.local下面开机就会自动执行. /usr/local/tomcat8./bin/startup.sh >& ...

  5. css的class, id等常用命名规则

    CSS的class.id.css文件名的常用命名规则        (一)常用的CSS命名规则 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sid ...

  6. rest_framework 权限流程

    权限流程 权限流程与认证流程非常相似,只是后续操作稍有不同 当用户访问是 首先执行dispatch函数,当执行当第二部时: #2.处理版本信息 处理认证信息 处理权限信息 对用户的访问频率进行限制 s ...

  7. NumPy、SciPy 等Python包在Windows下的whl安装包下载

    http://www.lfd.uci.edu/~gohlke/pythonlibs/ 感谢加利福尼亚大学尔湾分校(University of California, Irvine)荧光动力实验室(瞎翻 ...

  8. “pip failed to create process”的问题

    增加python -m的方法能完美解决pip,easy_install 安装时报错:“pip failed to create process”的问题,据推测应该是64bit操作系统下会是如此. Wi ...

  9. 【转】进程、线程、 GIL全局解释器锁知识点整理

    转自:https://www.cnblogs.com/alex3714/articles/5230609.html 本节内容 操作系统发展史介绍 进程.与线程区别 python GIL全局解释器锁 线 ...

  10. [scrapy] PIL老是出错,换成pillow解决问题

    使用scrapy下载图片的时候,用PIL老是下载不成功 出现如下错误: IOError: encoder jpeg not available 据说是安装PIL之前缺少一些相关的包 freetype ...