在 docker-compose 中转发端口,无需使用指定的 -L 选项打开 SSH 连接

在 docker-compose 中转发端口,无需使用指定的 -L 选项打开 SSH 连接

我一直在关注关于使用 Docker 容器开始使用 Kubernetes 的教程,它是官方教程修改后即可使用docker-compose

我已经设法使用以下方法列出节点

kubectl get nodes

但我只能在另一个窗口中打开与容器的 SSH 连接才能做到这一点,使用

docker-machine ssh docker-vm -L 8080:localhost:8080

这很混乱,我希望能够处理这个问题docker-compose.yml,但我不知道该怎么做

我尝试使用iml 文件中的portsexpose选项,但它们不起作用。当我尝试转发/公开端口 8080 并使用上述kubectl命令获取节点时,我收到以下错误:

error: couldn't read version from server: Get http://localhost:8080/api: EOF

我使用了docker-compose.yml顶部第一个链接,并做了以下修改:

aipserver:
ports:
  - "8080:8080"
expose:
  - "8080"

我已在中指定的所有容器上尝试此操作docker-compose.yml,但问题仍然存在。

如何使用docker-compose.yml来转发/公开容器上的端口,而不必使用-L指定的选项打开 SSH 连接。

答案1

API 服务器在主机网络上公开在 127.0.0.1:8080

如果要在 docker-machine vm 上公开它,则需要将 --address 标志更改为 --address=0.0.0.0:8080,而不是 --address=127.0.0.1:8080

这会将其暴露在你的机器上的虚拟机地址上(例如 1.2.3.4)

如果您正确设置了虚拟盒端口转发,这也会使其在您的机器上的 localhost:8080 上可用。

相关内容