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
。
我使用带有 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
。