我使用Docker容器内部的监控应用程序"ManageIQ“,通过ssl端口检查位于Docker容器外部的应用程序"hawkular”。以下是docker命令:
docker pull manageiq/manageiq:euwe-2
docker run --privileged -d -p 8443:443 manageiq/manageiq:euwe-2并在"ManageIQ“停靠器容器中配置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
successManageIQ web应用程序https://localhost:8443运行成功。但无法连接到位于Docker容器外的http://localhost:8080地址的hawkular。
这两个应用程序都有不同的"localhost",但是我不知道如何处理这个问题。我是否错过了解决此问题的任何过程?
发布于 2017-12-27 13:32:05
container中的localhost不是主机操作系统上的localhost。这些是不同的。
要从container连接主机操作系统的地址,请使用docker0接口,这是默认的bridge network docker服务。(当然,您可以创建自己的docker网络,而不是默认的网桥网络,请参阅here)
$ ifconfig docker0 例如,如果docker0接口的IP为172.20.0.1,则使用172.20.0.1:8080。
https://stackoverflow.com/questions/42717928
复制相似问题