Kor*_*nik 34 authentication docker
我们的Docker图像发送封闭源,我们需要使用自己的私有docker注册表将它们存储在安全的地方.我们搜索使用简单身份验证层部署私有docker注册表的最简单方法.
我发现 :
shipyard/docker-private-registry基于stackbrew/registry的docker镜像,并通过Nginx添加基本身份验证 - https://github.com/shipyard/docker-private-registry我认为使用shipyard/docker-private-registry,但还有另一种最好的方法吗?
Lau*_*ent 27
我还在学习如何运行和使用Docker,请考虑这个想法:
# Run the registry on the server, allow only localhost connection
docker run -p 127.0.0.1:5000:5000 registry
# On the client, setup ssh tunneling
ssh -N -L 5000:localhost:5000 user@server
Run Code Online (Sandbox Code Playgroud)
然后可以在localhost:5000访问注册表,通过您可能已经知道并使用的ssh进行身份验证.
资料来源:
Zed*_*TuX 14
您还可以将Nginx前端与Basic Auth和SSL证书一起使用.
关于SSL证书,我已经尝试了几个小时来获得有效的自签名证书,但Docker无法使用注册表.为了解决这个问题,我有一个完美的免费签名证书.(我使用过StartSSL但还有其他的).生成证书时也要小心.如果您希望在URL registry.damienroch.com上运行注册表,则必须使用子域提供此URL,否则它将不起作用.
您可以使用Docker和我的nginx-proxy映像执行所有这些设置(请参阅Github上的README:https://github.com/zedtux/nginx-proxy).这意味着如果您使用分发包管理器安装了nginx,则将使用容器化的nginx替换它.
.crt和.key文件)放在服务器上的文件夹中(我正在使用/etc/docker/nginx/ssl/,证书名称是private-registry.crt和private-registry.key)/etc/docker/nginx/htpasswd/,文件名是accounts.htpasswd)/etc/docker/registry/)以下是为前面的步骤运行的命令示例:
sudo docker run -d --name nginx -p 80:80 -p 443:443 -v /etc/docker/nginx/ssl/:/etc/nginx/ssl/ -v /var/run/docker.sock:/tmp/docker.sock -v /etc/docker/nginx/htpasswd/:/etc/nginx/htpasswd/ zedtux/nginx-proxy:latest
sudo docker run -d --name registry -e VIRTUAL_HOST=registry.damienroch.com -e MAX_UPLOAD_SIZE=0 -e SSL_FILENAME=private-registry -e HTPASSWD_FILENAME=accounts -e DOCKER_REGISTRY=true -v /etc/docker/registry/data/:/tmp/registry registry
Run Code Online (Sandbox Code Playgroud)
第一行启动nginx,第二行启动注册表.按此顺序执行此操作非常重要.
当两者都启动并运行时,您应该可以使用以下命令登录:
docker login https://registry.damienroch.com
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16956 次 |
| 最近记录: |