我有一个在 GCP 上运行的虚拟机,并在其上安装了我的 docker。我在其上运行 NGINX Web 服务器,并使用静态保留的外部/公共 IP 地址。我可以通过公共 IP 地址轻松访问该站点。现在,我将 Artifactory 作为 Docker 容器在此 VM 上运行,整个想法是使用具有特定端口(例如 8081)的相同公共 IP 地址访问此 Docker 容器(准确地说是 Artifactory)。我已经配置了反向代理在 NGINX Web 服务器中绕过对我的 Artifactory docker 容器的内部 IP 地址的请求,但请求没有到达它并且无法访问 Artifactory。
Docker 容器正在运行:-
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a4119d923hd8 docker.bintray.io/jfrog/artifactory-pro:latest "/entrypoint-artifac…" 57 minutes ago Up 57 minutes 0.0.0.0:8081->8081/tcp my-app-dev-artifactory-pro
这是我的反向代理设置:-
server {
listen 81;
listen [::]:81;
server_name [My External Public IP Address];
location / {
proxy_pass https://localhost:8081;
}
}
由于您使用 GCP 来运行此程序,因此我认为您的问题非常简单。首先,您不必拥有 Nginx 即可访问 Docker 容器内的 Artifactory。您应该可以使用 IP 和端口(例如 XX.XX.XX.XX:8081)轻松访问它,我可以看到在 Nginx 配置中,您正在侦听 Artifactory 未使用的端口 81。我认为这里的问题是您在实例配置中不允许与 GCP 实例进行 HTTP 通信,或者您没有在“docker run”命令中映射端口。您可以通过运行命令“docker ps”查看端口是否已映射,并查看“端口”部分中是否有已映射的端口。如果没有,您将需要映射端口(8081 到 8081)并确保您的 GCP 实例启用了 HTTP 流量,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句