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

我一直在关注本教程,关于使用Docker容器开始使用Kubernetes,这是修改为使用docker-compose官方教程的变体。

我设法得到尽可能列出使用的节点

 kubectl get nodes 

但我只能这样做,如果我有一个SSH连接打开到另一个窗口中的容器,打开使用

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

这是相当混乱,我想能够在docker-compose.yml处理这个,但我不知道如何

我试过使用portsexpose选项在iml文件,但他们不工作。 当我尝试转发/暴露端口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 ,但问题仍然存在。

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

API服务器在127.0.0.1:8080的主机networking上公开

如果你想在docker-machine虚拟机上公开它,你需要将–address标志改为–address = 0.0.0.0:8080,而不是–address = 127.0.0.1:8080

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

如果虚拟机端口转发设置正确,则也可以在本机上使用本地主机:8080。