Если вы хотите запускать GeoNode только на vps и больше ничего, вы можете просто открыть порт 80 geonode/nginx:geoserver
из файла компоновки Docker, который вы связали.Способ установки базы docker-compose.yml
в репо заключается в том, что она будет предоставлять порт 80 из контейнера на хосте - почти так же, как если бы вы запускали nginx или apache для прослушивания порта 80 на всех интерфейсах этогосервер.После этого вы сможете подключаться с клиентов, используя публичный IP-адрес с vps.
Если вы хотите запускать несколько разных сервисов на одном хосте с помощью docker-compose, вам понадобится какой-топрокси для «маршрутизации» разных поддоменов в разные контейнеры.Вы можете добиться этого с помощью классического nginx, установленного на самом vps, или с помощью чего-то вроде этого образа .Для «классического» способа с nginx вам необходимо внести некоторые изменения в конфигурацию ports
файла docker-compose.yml
, чтобы открыть порт только на хосте.Примерно так:
...
geonode:
image: geonode/nginx:geoserver
...
ports:
- "127.0.0.1:8081:80"
...
Это сделает порт 80
внутри контейнера доступным через порт 8081
на хосте, но только на локальном интерфейсе.Затем вам понадобится что-то вроде nginx, чтобы прокси-запрос от внешнего мира на 127.0.0.1:8081
.
Если вы не настроили его иначе, демон docker прослушивает локальный сокет, а не ip, поэтомубезопасно открыть порт из образа докера «внешнему миру».