Docker Registry V2 with Nginx
安装 nginx
修改/etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
其中 releasever basearch 到 http://nginx.org/packages/centos/ 地址上去查
yum install nginx
配置ssl证书
注意CN的地址要与你的registry地址一致,可以修改/etc/hosts来绑定一个地址
修改 /etc/docker/daemon.json
增加 "insecure-registries":["xxx(CN里写的地址):port"]
正常启动registry 不需要任何ssl参数,权限交由nginx控制
docker run -d -p 6000:5000 --restart=always --name registry registry:2.5.1
配置nginx
user root root;
worker_processes 1; error_log /var/log/nginx/error.log debug;
#pid /var/log/nginx/nginx.pid; worker_rlimit_nofile 51200; events {
use epoll;
worker_connections 512;
multi_accept on;
} http {
include /etc/nginx/mime.types;
default_type application/octet-stream; log_format main '$http_host $remote_user [$time_local] $request '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $remote_addr $request_time $upstream_response_time'; access_log /var/log/nginx/access.log main; sendfile on;
tcp_nopush on;
tcp_nodelay on; keepalive_timeout 0;
#keepalive_timeout 65; #gzip on; upstream registry {
server tf56:6000;
} server {
listen 8080;
server_name registry.lenovo.com; ssl on;
ssl_certificate /root/registry/certs/registry.lenovo.com.crt;
ssl_certificate_key /root/registry/certs/registry.lenovo.com.key;
ssl_client_certificate /root/registry/certs/registry.lenovo.com.crt; # Recommendations from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html
ssl_protocols TLSv1.1 TLSv1.2;
ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m; client_max_body_size 0; chunked_transfer_encoding on; location / {
auth_basic "Registry realm";
auth_basic_user_file /root/registry/nginx/nginx.htpasswd;
add_header 'Docker-Distribution-Api-Version' 'registry/2.0' always; proxy_pass http://registry;
proxy_set_header Host $http_host; # required for docker client's sake
proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Authorization ""; # see https://github.com/dotcloud/docker-registry/issues/170
proxy_read_timeout 900;
# proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme; # proxy_set_header X-Forwarded-Proto "https";
# proxy_set_header X-Forwarded-Protocol "https";
}
}
}
其中
/root/registry/nginx/nginx.htpasswd
生成方法 htpasswd -cb nginx.htpasswd tester1 123456
登陆验证
docker login xxxx:port
curl -i -k -v https://uname:password@xxx:port/v2/_ping
问题解决:
502 问题
nginx后台日志
connect() failed (111: Connection refused) while connecting to upstream
而且upstream总是80端口
修改proxy_pass,这里修改成了http://registry 是一个不存在的地址
client sent plain HTTP request to HTTPS port while reading client request headers
peer closed connection in SSL handshake (104: Connection reset by peer) while SSL handshaking,
或者registry log : registry first record does not look like a TLS handshake
关闭所有registry的ssl选项,所有SSL控制交给nginx处理
registry报错 Invalid token
需要在启动时设置REGISTRY_HTTP_SECRET,所有replica都使用相同的值即可(-e REGISTRY_HTTP_SECRET=mysk)
registry报错 blob unknown
后端数据要存放在一个数据源上,比如NFS,ceph
Docker Registry V2 with Nginx的更多相关文章
- 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 ...
- 【云计算】docker registry v2简介
ubuntu docker方式部署docker registry v2 2016-03-03 17:36 by JackieHan, 4 阅读, 0 评论, 收藏, 编辑 生成自己签名的证书 生成签 ...
- docker registry v2与harbor的搭建
docker的仓库 1 registry的安装 docker的仓库我们可以使用docker自带的registry,安装起来很简单,但是可能有点使用起来不是很方便.没有图形化. 开始安装 使用镜像加速器 ...
- 配置带用户权限的docker registry v2
v1版本的docker registry用nginx配置,v2版本的用nginx有些问题,客户端总是会请求到v1/下面去, 以下从 http://blog.csdn.net/felix_yujing/ ...
- Docker registry V2
部署私有Docker Registry 搭建 Insecure Registry 修改Registry server上的Docker daemon的配置,为DOCKER_OPTS增加–insecure ...
- ubuntu docker方式部署docker registry v2
生成自己签名的证书 生成签名的过程需要根据提示输入一些参数,需要注意的时Common Name的时候需要输入一个自己需要的域名,如果时内部域名记得访问的时候需要修改hosts. mkdir /data ...
- Docker Registry V2 Garbage Collection
运行 docker run --rm -v /nfs1/docker/registry:/var/lib/registry registry:2.5.1 garbage-collect -d /roo ...
- Deploying docker registry v2
生成证书 openssl genrsa -out mydomain.key 2048 生成秘钥 openssl req -newkey rsa:4096 -nodes -sha256 -keyout ...
- 在CentOS 6上搭建私有的Docker Registry
在CentOS 6上搭建私有的Docker Registry v2Registry概念 :Registry是一个无状态的, 高可扩展的服务器端应用程序, 用于存储和分发Docker Image. 依赖 ...
随机推荐
- 简单Java动态代理实现
package test; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import ja ...
- js多个(N)个数组的的元素组合排序算法,多维数组的排列组合或多个数组之间的排列组合
现在有一批手机,其中颜色有['白色','黑色','金色','粉红色']:内存大小有['16G','32G','64G','128G'],版本有['移动','联通','电信'],要求写一个算法,实现[[ ...
- javascript: 类、方法、原型
// 类.方法.原型 //================================================================================== /* 类 ...
- sparksql udf自定义函数中参数过多问题的解决
在进行spark sql数据库操作中,常常需要一些spark系统本身不支持的函数,如获取某一列值中的字符串. 如要获取 “aaaakkkkk”中的第4-第8个字符. 针对这种需求,只有设置UDF来实现 ...
- CoAP 协议解析说明(转)
CoAP 协议全面分析 HTTP与COAP 请求与响应示例 HTTP请求(文本格式) POST https://getman.cn/echo HTTP/1.1 User-Agent: Fiddler ...
- mybatis13--2级缓存
验证内置的2级缓存 Ehcache缓存的配置 01.引入需要的ehcache 和mybatis-ehcache 两个jar包 02.在mapper文件中增加 <cache type=" ...
- canvas里设置width和css里设置width和js里设置width的区别
canvas.width 和 它的style.width是不一样的: canvas是个画布,有他自己的宽和高(默认是没有单位的纯数字),就是canvas.width和canvas.height的宽和高 ...
- OA流程分析
OA流程分析: 1. 流程定义:可视化可拖拽的流程环节设置,流程定义完成后保存在数据表中,字段有流程ID,名称,流程流转环节. 2. 画业务表单,新建业务数据表. 3. 表单数据填好后,启动流程:
- [bash] 几个以前没注意过的小知识
1. BASH_SOURCE[0] 是啥意思,以及获取当前脚本所在目录 BASH_SOURCE[] 等价于 BASH_SOURCE, 取得当前执行的shell文件所在的路径及文件名. 如/home/ ...
- c++代码检测工具
cppcheck是一款静态代码检查工具,可以检查如内存泄漏等代码错误,使用起来比较简单,即提供GUI界面操作,也可以与VS开发工具结合使用. 1.安装 一般会提供免安装版,安装完成后将cppcheck ...