一尘不染

使用'localhost'连接到docker-machine

docker

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

docker-machine ip default

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


阅读 228

收藏
2020-06-17

共1个答案

一尘不染

您可以向前添加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

2020-06-17