Веб-приложение ManageIQ внутри контейнера Docker не может подключиться к внешнему контейнеру Hawkular

Я использую приложение для мониторинга "ManageIQ" внутри контейнера Docker с портом ssl, чтобы проверить приложение "hawkular", которое находится за пределами контейнера Docker. Ниже приведены команды docker:

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

И я настраиваю настройку ssl внутри Docker-контейнера "ManageIQ"

 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 https://localhost:8443/ работает успешно. Но не могу подключиться к hawkular, чей URL-адрес http://localhost:8080/ расположен за пределами контейнера Docker.

Каждое из этих двух приложений имеет свой "localhost", однако я понятия не имею, как решить эту проблему. Я пропускаю какой-либо процесс, чтобы решить эту проблему?

1 ответ

Решение

localhost в container не является localhost на хосте ОС. это разные.

Чтобы подключить адрес хост-ОС от containerиспользовать docker0 интерфейс по умолчанию bridge network Докер служит по умолчанию. (Конечно, вы можете создать свою собственную сеть докеров, отличную от мостовой сети по умолчанию, см. Здесь)

$ ifconfig docker0  

Например, если docker0 IP-адрес интерфейса 172.20.0.1Использовать 172.20.0.1:8080,

Другие вопросы по тегам