Запрос Docker на собственный сервер - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть экземпляр докера, работающий с apache на порту 80, и node.js + express, работающий на порте 3000. Мне нужно сделать запрос AJAX с веб-сайта, обслуживаемого apache, на сервер узлов, работающий на порте 3000.

Я не знаю, какой подходящий URL использовать.Я попробовал localhost, но это разрешило localhost клиента, просматривающего веб-страницу (также конечного пользователя) вместо localhost образа докера.

Заранее спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

сделать запрос AJAX с [...] веб-сайта на сервер узла

JavaScript, HTML и CSS, которые обслуживает Apache, все читаются и интерпретируются браузером, который может работать или не работать на том же хосте, что и серверы.Как только вы перейдете на уровень браузера, код не поймет, что Docker связан со всем этим.

Если вам удастся обойтись только отправкой ссылок без имен хостов <img src="/assets/foo.png">, которые всегда будут работать без какой-либо конфигурации.В противном случае вам нужно использовать DNS-имя или IP-адрес хоста точно так же, как если бы вы запускали две службы непосредственно на хосте без Docker.

0 голосов
/ 30 ноября 2018

Сначала вы должны разделить свои контейнеры - это хорошая практика для Docker иметь один контейнер на один процесс.

Тогда вам понадобится какой-то инструмент для оркестровки этих контейнеров.Вы можете начать с docker-compose, поскольку IMO является самым простым.

Он запустит все ваши контейнеры и по умолчанию будет управлять их сетевыми настройками.

Итак, образ для отображения ваших приложений:

docker-compose.yml

version: '3'
services:
  apache:
    image: apache

  node:
    image: node # or whatever

С таким простымВ конфигурации у вас будут имена хостов в вашей сети apache и node.Таким образом, внутри вашего приложения узла вы увидите apache как apache host.

Просто запустите его с docker-compose up

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...