gpt4 book ai didi

docker - 使用 docker-compose 运行 GeoNode

转载 作者:行者123 更新时间:2023-12-02 19:27:04 25 4
gpt4 key购买 nike

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

GeoNode tutorial on docker-compose在本地运行它有非常明确的说明。它还有在 docker IP 上运行它的说明,如果我理解正确的话,这在生产中不是一个好主意,因为这是 docker 守护进程监听的 IP,所以我不想公开它。

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

虽然我以前玩过 docker,但我对它很陌生,所以我可能只是误解了一些东西。

最佳答案

如果你只想在 vps 上运行 GeoNode 而没有别的,你可以只暴露端口 80 geonode/nginx:geoserver从您链接的 docker compose 文件中。方式基地docker-compose.yml在 repo 设置中,它会从主机上的容器中公开端口 80 - 就像您启动 nginx 或 apache 以监听该服务器上所有接口(interface)上的端口 80 一样。之后,您将能够使用来自 vps 的公共(public) 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 上可用的容器内部在主机上,但仅在本地接口(interface)上。然后你需要像 nginx 这样的东西来代理来自外部世界的请求到 127.0.0.1:8081 .

如果您没有另外配置它​​,docker 守护进程会在本地套接字上监听,而不是在 ip 上,因此将 docker 镜像中的端口公开给“外部世界”是安全的。

关于docker - 使用 docker-compose 运行 GeoNode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55303724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com