如何将容器的端口暴露给主机?

所以我有我的项目,当安装在主机上使login页面可用(通过embedded式Tomcat服务器)

https://127.0.0.1:8443/ 

现在我安装在Ubuntu的容器和安装我使用的命令是

 docker run -it --name lp --dns=122.17.213.214 --dns=122.26.00.10 --dns-search=corp.sfc.san -p 8080:8443 -v ~/Downloads/logs:/logs -v ~/Downloads:/installers ubuntu /bin/bash 

当我这样做时,我无法在主机浏览器上达到这个目的,我试过的是

 https://my-docker-machine-ip:8443/ # I am using Mac OSX 

接下来,我想提供确切的映射,我试了一下

 docker run -it --name lp --dns=122.17.213.214 --dns=122.26.00.10 --dns-search=corp.sfc.san -p 192.168.99.100:8443:8443 -v ~/Downloads/logs:/logs -v ~/Downloads:/installers ubuntu /bin/bash 

并再次尝试相同的url,但没有运气

我看到的是来自Apache HTTP 404 。 我错过了什么?

但是在容器中,我看到日志告诉我服务器正在运行

 11 May 2016 22:19:19,166 [INFO ] [main] EmbeddedWebServer | Starting tomcat server on port 8443 ... 

语法是-p hostPort:ContainerPort 。 你的第一个例子有正确的语法,但是“错误”的端口(与你期待的相比)。

代替:

 docker run -it --name lp --dns=122.17.213.214 --dns=122.26.00.10 --dns-search=corp.sfc.san -p 8080:8443 -v ~/Downloads/logs:/logs -v ~/Downloads:/installers ubuntu /bin/bash 

使用:

 docker run -it --name lp --dns=122.17.213.214 --dns=122.26.00.10 --dns-search=corp.sfc.san -p 8443:8443 -v ~/Downloads/logs:/logs -v ~/Downloads:/installers ubuntu /bin/bash 

然后

 https://my-docker-machine-ip:8443/ # I am using Mac OSX 

应该pipe用。