如何将端口从Container公开给主机?

时间:2016-05-11 22:26:44

标签: docker

所以我有我的项目,当安装在主机上时,登录页面可用(通过嵌入式Tomcat服务器)

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

现在我在ubuntu容器中安装了它,并且为了安装我使用的命令是

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  

接下来,我想提供精确的映射,我试过

HTTP 404

再次尝试使用相同的网址,但没有运气

我看到的是来自Apache的{​​{1}}。我错过了什么?

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

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

1 个答案:

答案 0 :(得分:1)

语法为-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

应该有用。