我一直在关注这关于使用 Docker 容器开始使用 Kubernetes 的教程,它是这官方教程修改后即可使用docker-compose
。
我已经设法使用以下方法列出节点
kubectl get nodes
但我只能在另一个窗口中打开与容器的 SSH 连接才能做到这一点,使用
docker-machine ssh docker-vm -L 8080:localhost:8080
这很混乱,我希望能够处理这个问题docker-compose.yml
,但我不知道该怎么做
我尝试使用iml 文件中的ports
和expose
选项,但它们不起作用。当我尝试转发/公开端口 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 上可用。