gpt4 book ai didi

docker - 如何在 Apache httpd 后面公开 Docker-Registry?

转载 作者:行者123 更新时间:2023-12-02 02:59:06 25 4
gpt4 key购买 nike

我正在使用以下 docker-compose.yml 文件运行私有(private) docker-registry v2:

registry:
restart: always
image: registry:2
ports:
- 5000:5000
environment:
REGISTRY_HTTP_TLS_CERTIFICATE: /certs/server-cert.pem
REGISTRY_HTTP_TLS_KEY: /certs/server-key.pem
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
volumes:
- /data/docker-registry:/var/lib/registry
- /certs/docker-registry:/certs
- /auth/docker-registry:/auth

并且我可以在 http://localhost:5000 本地登录(SSH、Jenkins...)

现在我想用 Apache httpd 公开这个注册表。我在 CentOS 7 上运行以下版本的 httpd:

[root@dev-machine conf.d]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Jun 27 2018 13:48:59

这是我的vhosts.conf:

<VirtualHost *:443>
ServerName dev-machine.com
ServerAlias www.dev-machine.com

ErrorLog logs/dev-machine.com-error_log
CustomLog logs/dev-machine.com-access_log common

SSLEngine on
SSLCertificateFile /certs/docker-registry/server-cert.pem
SSLCertificateKeyFile /certs/docker-registry/server-key.pem

Header set Host "dev-machine.com"
Header set "Docker-Distribution-Api-Version" "registry/2.0"
RequestHeader set X-Forwarded-Proto "https"

ProxyRequests off
ProxyPreserveHost on

ProxyPass /registry http://127.0.0.1:5000/
ProxyPassReverse /registry http://127.0.0.1:5000/

<Location /registry>
Order deny,allow
Allow from all

AuthName "Registry Authentication"
AuthType basic
AuthUserFile "/auth/htpasswd"
Require valid-user
</Location>
</VirtualHost>

我面临的问题是,当我尝试登录注册表时,出现以下错误:

izio@1z10:~$ docker login https://dev-machine.com/registry
Username: user
Password:
Error response from daemon: login attempt to https://dev-machine/v2/ failed with status: 404 Not Found

似乎重定向到/v2,而不是使用虚拟主机中分配的 url。此配置缺少什么或有什么问题?

最佳答案

只需像这样更新你的 httpd.conf


ProxyPass/注册表http://127.0.0.1:5000/ v2
ProxyPassReverse/注册表http://127.0.0.1:5000/ v2

关于docker - 如何在 Apache httpd 后面公开 Docker-Registry?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52905770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com