使用'localhost'连接到docker-machine

问题描述

您可以向前添加VirtualBox端口,以将Docker主机上的端口映射到本地计算机。

假设您的docker机器被称为“认”,并且您要将容器中的端口80映射到localhost:8888,则可以运行:

vBoxmanage modifyvm default --natpf1 "nameformapping,tcp,,8888,,80"

或VM是否正在运行

vBoxmanage controlvm default natpf1 "nameformapping,tcp,,8888,,80"

也可以在VM设置的VirtualBox UI中完成此操作。这是VirtualBox的文档https://www.virtualbox.org/manual/ch06.html#network_nat

您还需要将容器上的端口映射到docker计算机上的端口,然后在启动容器时执行此操作(这也假设您在Dockerfile中有一个“ EXPOSE 80”命令)

docker run -p 80:80 mycontainer

https://docs.docker.com/engine/reference/run/

另请参阅:https ://github.com/boot2docker/boot2docker/blob/master/doc/WORKAROUNDS.md

解决方法

有某些功能,例如不带https的JavaScript服务工作者,仅可在localhost上运行,但是当我使用在docker-
machine上运行的docker-compose在docker容器内运行我的应用程序时,我需要使用我从那里得到的地址

docker-machine ip default

有没有办法映射localhost到该IP?