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 ...
随机推荐
- 汕头市队赛 C KMP codeforces B. Image Preview
汕头市队赛题目传送门 codeforces题目传送门 这道题我的做法是 尝试先往左走然后往右走 或者先往右走然后往左走 然后注意一下枚举顺序就okay啦 #include<cstdio> ...
- MongoDB安装成为Windows服务
使用以下命令将MongoDB安装成为Windows服务.笔者的MongoDB目录为C:\Program Files\MongoDB\Server\3.6\bin 切换到C:\Program Files ...
- mongoDB的简单使用
1.客户端连接: ./mongo 2.数据库 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. MongoDB的单个实 ...
- Python学习笔记 - day3 - 数据类型及运算符
Python的数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同 ...
- 【POI2017||bzoj4726】Sabota?
上学期putsnan过了一次,这学期认真写了一遍…… #include<bits/stdc++.h> #define N 500010 using namespace std; ]; ,n ...
- mysql约束与索引的区别
一:约束 作用:是为了保证数据的完整性而实现的一套机制,它具体的根据各个不同的数据库的实现而有不同的工具(约束): 这里主要讲解mysql的约束: 1.非空约束:not null; 指示某列不能存储 ...
- DELPHI用const来提高应用程序在多核多线程下的性能
来自:http://bbs.csdn.net/topics/330048800 --------------------------------------------------------- 我们 ...
- docker从零开始网络(一)概述
概述 预计阅读时间: 4分钟 Docker容器和服务如此强大的原因之一是您可以将它们连接在一起,或者将它们连接到非Docker工作负载.Docker容器和服务甚至不需要知道它们部署在Docker上,或 ...
- AC日记——斐波那契数列(升级版) 洛谷 P2626
斐波那契数列(升级版) 思路: 水题: 代码: #include <cmath> #include <cstdio> #include <cstring> #inc ...
- opencv图像二值化的函数cvThreshold()。 cvAdaptiveThreshol
OpenCV中对图像进行二值化的关键函数——cvThreshold(). 函数功能:采用Canny方法对图像进行边缘检测 函数原型: void cvThreshold( const CvArr* sr ...