我使用docker工具箱在我的Windows系统上运行docker。 我使用命令docker run -it --rm -p 8888:8080 tomcat:8.0
tomcat容器docker run -it --rm -p 8888:8080 tomcat:8.0
。 根据文档,我应该可以使用http:// localhost:8888访问tomcat,但这不起作用。
相反,我可以使用docker-machine ip http://192.168.99.100:8888访问tomcat应用程序。
但这不是我所需要的。 我需要通过networking从我的系统外部访问tomcat容器应用程序。 那么,如何将tomcat应用程序映射到我的Windows主机系统呢?
在search时,我可以看到boot2docker虚拟机的端口转发选项。 但是,我再次不使用boot2docker。 我正在使用docker工具箱。
最后,我能够找到添加端口转发规则的地方。 打开Oracle VirtualBox Manager。 进入设置 – >网络 – >端口转发
这里1个规则已经可用于ssh。 所以我添加了以下配置的另一个规则:HostIP:HostPort => 127.0.0.1:9999 GuestIP:GuestPort =>:8888
所以现在如果我调用http:// localhost:9999 ,它会被转发到=> docker-machine:8888,然后从那里被转发到=> tomcatVM:8080。
我可以看到boot2docker虚拟机的端口转发选项。 但是,我再次不使用boot2docker。 我正在使用码头工具箱。
是的,你正在使用boot2docker。
工具箱只是一堆boot2docker + docker-machine + kitematic 。
打开你的VirtualBox,你会看到一个在存储设置中基于boot2docker.iso
的虚拟机。
请参阅端口转发8888到您的主机:请参阅“ 从外部连接到在码头集装箱内运行的服务 ”
VBoxManage controlvm "default" natpf1 "tcp-port8888,tcp,,8888,,8888" VBoxManage controlvm "default" natpf1 "udp-port8888,udp,,8888,,8888"
(用你的docker-machine的名字替换default
:参见docker-machine ls
)