nginx+ssl+Portus+registry docker仓库
还存在的问题,如果通过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仓库的更多相关文章
- 通过API获取 Portus+registry docker仓库信息
接口获取docker centos 镜像的 tag 列表脚本 # -*- encoding:utf-8 -*- import requests import json ""&quo ...
- 基于IP的docker private registry 私有仓库的搭建
鉴于国内的网络环境,如果公司内部大量使用docker,镜像上传下载将是个非常耗时的工作,搭建一个私有仓库可以很好的解决自有镜像的存储,如果你在私有网络,不能使用域名的话,那么本文可以作为一个很好的例子 ...
- Docker registry私有仓库(七)
Docker registry私有仓库搭建基本几步流程(采用nginx+认证的方式) 1. 申请免费的ssl证书 https://buy.wosiqn.com/free 2. 设置nginx ssl证 ...
- Docker registry 私有仓库镜像查询、删除、上传、下载 shell
#Docker官方私有仓库registry #官方只提供了API接口,不方便使用,就写了个shell #docker-registry安装配置http://www.cnblogs.com/elvi/p ...
- Docker 自建私有Registry 私有仓库
目录 说明 介绍 原理 搭建 查看配置文件 启动 上传和下载镜像测试 测试上传镜像 测试下载镜像 说明 记录搭建 docker 私有仓库步骤 介绍 docker镜像可以托管到dockerhub中,跟代 ...
- docker registry 私有仓库 安装配置、查询、删除
#++++++++++++++++++++++++++++++ #docker-registry 私有仓库 #搜索,下载register镜像 docker search registry docker ...
- Ubuntu 搭建docker registry 私有仓库
一.为什么要搭建 docker 私有仓库 原因有几个: 项目需要,不希望将项目放到 docker hub 上. 环境需求,考虑网络.效率的问题,希望在私有服务器上建立自用的仓库,提高便利性和访问速度. ...
- 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 ...
- 8. docker image 的发布 与 docker registry 私有仓库
一.分享image 1.注册 登陆 docker hub https://hub.docker.com/ 2.在本地 使用 docker login 输入 注册的账号密码 进行登陆 3.使用 dock ...
随机推荐
- 归档普通对象Demo示例程序源代码
源代码下载链接:06-归档普通对象.zip34.2 KB // MJPerson.h // // MJPerson.h // 06-归档普通对象 // // Created by apple o ...
- mongodb的数据库操作
1.创建数据库 语法 MongoDB 创建数据库的语法格式如下: use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库. 1.创建数据库 > show dbs ...
- 如何完全禁用或卸载Windows 10中的OneDrive
该功能占用很大的内存与CPU 详见http://os.51cto.com/art/201508/489371.htm
- redis有string,hash,list,sets.zsets几种数据类型
1.string数据类型 可包含任何数据,是二进制安全的,比如图片或者序列化的对象set key valueset name hkset age 20get name 得到"hk" ...
- time_t转化成日期格式小工具
time_t转化成日期格式小工具下载 http://files.cnblogs.com/files/lansan0701/TimeTool.zip
- For循环中不可以嵌套RDD操作
今天犯了一个致命理解错误,Spark中的RDD Map操作只是一个计算式的传递,并不是Action,也就是在for循环中不会产生真正的计算. 因此,如果for循环中出现了RDD的Map类似操作,都会引 ...
- 【转】java中的集合和数组
转载自:http://www.cnblogs.com/summers/p/4094260.html 数组Array和集合的区别: (1)数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型 ...
- ReentrantLock 相关学习笔记
ReentrantLock 相关学习笔记 标签(空格分隔): Java多线程 Java接口Lock有三个实现类:ReentrantLock.ReentrantReadWriteLock.ReadLoc ...
- 使用Bind服务配置DNS服务器
bind是什么 bind是DNS服务器软件 ,他的服务名称是named 功能区分: 正向解析:根据主机名查找对应的IP地址 反向解析:根据IP地址查找对应的主机名(域名) 工作形式上区分: 主服务器: ...
- UTF-8编码中BOM的检测与删除[linux下命令]
Posted on 2011-05-14 所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此 ...