0

我使用带有 ssl 端口的 Docker 容器内的监控应用程序“ManageIQ”来检查位于 Docker 容器外部的应用程序“hawkular”。以下是码头工人命令:

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

ManageIQ Web 应用程序https://localhost:8443成功运行。但无法连接到位于 Docker 容器外部的URL 为http://localhost:8080的 hawkular。

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

4

1 回答 1

0

localhostin acontainer不在localhost主机操作系统上。这些是不同的。

要从 a 连接主机操作系统的地址container,请使用docker0默认bridge networkdocker 默认服务的接口。(当然,您可以创建自己的 docker 网络而不是默认的桥接网络,请参阅此处

$ ifconfig docker0  

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

于 2017-12-27T05:32:05.357 回答