使用docker-compose运行GeoNode

问题描述 投票:0回答:1

我正在尝试在VPS上运行GeoNode,并使用docker-compose将其暴露到互联网。

GeoNode tutorial on docker-compose有关于在本地运行它的相当明确的指示。它还有在docker IP上运行它的说明,如果我理解正确,在生产中不是一个好主意,因为这是docker守护程序监听的IP,所以我不想暴露它。

那么使用docker-compose在一台机器上运行GeoNode,运行Ubuntu有什么好的设置呢?

虽然我以前玩过码头工具,但我很陌生,所以我可能只是误解了一些东西。

docker docker-compose gis
1个回答
0
投票

如果您只想在vps上运行GeoNode而没有其他任何东西,您可以从您链接的docker compose文件中公开端口80 geonode/nginx:geoserver。设置repo中的基础docker-compose.yml的方式是它将从主机上的容器中暴露端口80 - 这与在该服务器上的所有接口上启动nginx或apache以侦听端口80的方式非常相似。之后,您将能够使用vps中的公共IP地址从客户端进行连接。

如果要使用docker-compose在同一主机上运行多个不同的服务,则需要某种代理来将不同子域的“路由”用于不同的容器。您可以通过在vps本身上安装经典nginx或使用this image之类的东西来实现这一点。对于使用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,因此将docker镜像端口暴露给“外部世界”是安全的。

© www.soinside.com 2019 - 2024. All rights reserved.