我正在使用docker工具箱在我的Windows系统上运行docker。我使用命令docker run -it --rm -p 8888:8080 tomcat:8.0
运行了tomcat容器。根据文档,我应该能够使用http://localhost:8888访问tomcat,但这不起作用。
相反,我可以使用docker-machine ip访问tomcat应用程序,http://192.168.99.100:8888。
但这不是我需要的。我需要通过网络从我的系统外部访问tomcat容器应用程序。那么,如何将tomcat应用程序映射到我的Windows主机系统?
谷歌搜索时,我可以看到boot2docker vm的端口转发选项。但是,我再次使用boot2docker。我正在使用docker工具箱。
答案 0 :(得分:6)
最后,我能够找到添加端口转发规则的位置。打开oracle VirtualBox Manager。转到设置 - >网络 - >港口转发..
这里有1条规则已经可用于ssh。 所以我用以下配置为此添加了另一个规则: HOSTIP:HOSTPORT => 127.0.0.1:9999 GuestIP:GuestPort => :8888
现在如果我调用http://localhost:9999,它会被转发到=> docker-machine:8888并从那里转发到=> tomcatVM:8080。
答案 1 :(得分:1)
我可以看到boot2docker vm的端口转发选项。但是,我再次使用boot2docker。我正在使用docker工具箱。
是的,你正在使用boot2docker Toolbox只是一包boot2docker + docker-machine + kitematic。
打开您的VirtualBox,您将看到一个在存储设置中基于boot2docker.iso
的虚拟机。
请向您的主持人查看端口转发8888:请参阅" Connect to a Service running inside a docker container from outside"
VBoxManage controlvm "default" natpf1 "tcp-port8888,tcp,,8888,,8888"
VBoxManage controlvm "default" natpf1 "udp-port8888,udp,,8888,,8888"
(将default
替换为泊坞机的名称:请参阅docker-machine ls
)