Веб-приложение 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
,