Docker 容器内的 ManageIQ Web 应用程序无法连接到 Hawkular 外部容器

ManageIQ web application inside Docker container can’t connect to Hawkular outside container

我使用带有 ssl 端口的 Docker 容器内的监控应用程序 "ManageIQ" 来检查位于 Docker 容器外的应用程序 "hawkular"。以下是 docker 命令:

docker pull manageiq/manageiq:euwe-2
docker run --privileged -d -p 8443:443 manageiq/manageiq:euwe-2

然后我在 "ManageIQ" docker 容器中配置 ssl 设置

 docker exec -ti "container-id" bash –l

 [root@17a6a6bd8743 vmdb]# vi /etc/httpd/conf.d/ssl.conf
 ServerName localhost:8443
 SSLProtocol -All +TLSv1 +TLSv1.1 +TLSv1.2
 SSLCertificateFile /opt/manageiq/manageiq-ui-service/node_modules/browser-sync/lib/server/certs/server.crt
 SSLCertificateKeyFile /opt/manageiq/manageiq-ui-service/node_modules/browser-sync/lib/server/certs/server.key
 [root@17a6a6bd8743 vmdb]# systemctl restart httpd 
 [root@17a6a6bd8743 vmdb]# yum install firewalld -y
 [root@17a6a6bd8743 vmdb]# systemctl start firewalld
 [root@17a6a6bd8743 vmdb]# systemctl enable firewalld
[root@17a6a6bd8743 vmdb]# firewall-cmd --add-service=https --permanent 
 success
[root@17a6a6bd8743 vmdb]# firewall-cmd --reload 
 success

位于 Docker 容器外的 ManageIQ Web 应用程序 https://localhost:8443 works succesfully. But can't connect to hawkular whose URL is http://localhost:8080

这两个应用程序各不相同"localhost",但是我不知道如何处理这个问题。我是否错过了解决此问题的任何流程?

container 中的

localhost 不是主机 OS 上的 localhost。这些是不同的。

要从 container 连接主机 OS 的地址,请使用默认的 docker0 接口 bridge network docker 默认服务。 (当然,您可以创建自己的 docker 网络而不是默认桥接网络,参考 here

$ ifconfig docker0  

例如,如果docker0接口的IP是172.20.0.1,使用172.20.0.1:8080