如何从我的主机转发端口到 Docker 容器?

如何从我的主机转发端口到 Docker 容器?

我正在 Docker 容器上运行 netmaker,它是 WiredGuard 网状 VPN 服务,我需要从 Docker 容器访问端口 9981,以便我可以通过我的 WiredGuard WAN 访问端口 9981。

托管 Netmaker 的 VPS 上的端口 9981 是开放的,但无法从 Docker 容器内访问。我一直在尝试解决这个问题,但无济于事,现在我束手无策了。

有人建议我将这一行添加到我的docker容器文件中,但这却导致了一个又一个的错误-

PORT_FORWARD_SERVICES="127.0.0.1:9981:9981"

请有人帮忙吗?

答案1

你试过Docker 文档? 端口转发是 Docker 中相当标准的功能。

在正常的 CLI 语法中,您可以添加:

-p <host-port>:<container-port>

这是映射端口 443 的示例命令:

docker run -d \
  --name=nextcloud \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/London \
  -p 443:443 \
  -v /path/to/appdata:/config \
  -v /path/to/data:/data \
  --restart unless-stopped \
  lscr.io/linuxserver/nextcloud:latest

因此您需要添加-p 9981:9981到用于运行容器的命令中。

如果您使用 Docker Compose,也会有类似的语法(但由于您没有指定,我认为情况并非如此)。

相关内容