我们有几个Docker存储库,由Sonatype Nexus服务器提供服务。
问题是我们希望从路径为它们提供服务,而不是在不同的域上为它们提供服务。原因很简单:使用每个子域注册和SSL证书配置新路径比配置新域更容易。此外,还存在一些安全问题。
能做到吗?
过了一会儿,我发现有两个步骤:登录和正常使用。
由于安装有nginx和docker compose中的nexus服务器,我可以将nexus主机称为“nexus”,只需通过http进行访问。SSL证书使用通常的nginx配置在nginx中解析
为了使登录工作,将路径< code>/v2/重定向到docker存储库是很重要的。这可以通过nginx来实现:
location /v2/ {
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;
proxy_pass http://nexus:10000;
proxy_read_timeout 90;
}
注意,它假设docker存储库的nexus配置在10000端口(http)处进行内部侦听。使用此配置,docker登录
应该已经可以工作了,但您不能提取任何图像。
为了访问图像,必须重写URI(请将此配置置于前面显示的/v2/
配置之上):
location ~ /v2/repository/docker-repo1/(.*) {
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;
proxy_pass http://nexus:10000/v2/$1;
proxy_read_timeout 90;
}
很容易意识到,您可以创建第二个存储库,监听端口10001,配置如下:
location ~ /v2/repository/docker-repo2/(.*) {
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;
proxy_pass http://nexus:10001/v2/$1;
proxy_read_timeout 90;
}
已经完成了。
请记住,在所有其他配置之后维护 /v2/
配置(用于登录的配置)非常重要,否则将永远无法访问。
我不确定所有关于授权的要求是否会按预期工作…如果我看到任何问题,我会更新这个答案。
如果你按照这些说明开始使用kubernetes,你添加一个apt源(德布http://apt.kubernetes.io/ kubernetes-xenial main)并被告知安装软件包“docker-engine”。这个包由kubernetes apt库提供,与Ubuntu (docker.io)提供的包冲突。 Kubernetes仓库中的docker引擎软件包和Ubuntu xenial中的
你好,我正在制作员工目录。在这种形式下,我想上传员工的照片,当我试图存储图像时,我遇到了错误,比如Portlet暂时不可用,如果我成功删除图像上传逻辑,然后在数据库中删除其他数据存储。请帮助我如何在数据库中存储图像路径。我已在/webapps中创建图像文件夹。我想将我的所有图像存储在此文件夹中,并将图像路径存储到数据库中。请告诉我如何存储图像路径,以及存储图像路径后如何在其他页面中显示图像。 在这
我正在为我的项目使用maven,在提供GroupId、ArtifactId和Version之后,需要提供一个Nexus路径。 我的Nexus路径-https://nexus/content/repositories/ 路径中存在的工件-https:/mynexusdomain/nexus/内容/存储库/快照/com/org/abc/myartifactid/MySnapshotVersion/pl
01-20 08:55:14.787:W/System.err(1383):at libcore.io.iobridge.open(iobridge.java:409)01-20 08:55:14.787:W/System.err(1383):at java.io.fileInputStream.(fileInputstream.java:78)01-20 08:55:14.827:W/Syste
我有一个基本的Dockerfile: 对于这个Dockerfile,我希望能够创建一个没有密码的用户,并且在运行Docker容器时,我希望使用该用户而不是root。当我尝试运行容器时,,我得到这个错误: 当容器以交互方式运行时,如何在Dockerfile中创建用户并使该用户成为默认用户?
我复制了一个工作中的laravel应用程序,并将其重新命名为另一个应用程序。我删除了vendor文件夹并再次运行以下命令: 我正确地配置了我的路由和所有的东西,但是现在当我尝试在浏览器中运行我的应用程序时,我得到了以下错误: compiler.php第36行中的InvalidArgumentException:请提供有效的缓存路径。 filesystem.php行111中的错误:file_put_
我复制了一个正在工作的laravel应用程序,并将其重命名为用于另一个应用程序。我删除了供应商文件夹,并再次运行以下命令: 我已正确配置了路线和所有内容,但现在,当我尝试在浏览器中运行应用程序时,出现以下错误: Compiler.php第36行中的InvalidArgumentException:请提供有效的缓存路径。 Filesystem.php第111行中出现错误异常:文件内容(F:\www\