2015-11-03 231 views
1

当我尝试在不同的主机端口映射上运行应用程序的两个不同版本时,我没有从docker容器得到响应。Docker端口映射不起作用

例如:从图像3

docker run --it -p 6443:443 --rm --privileged image1 
docker run --it -p 7443:443 --rm --privileged image2 
docker run -p 15672:15672 -d image3 

UI集装箱来了,但没有UI可以从图像1和图像2取决于其在最后被运行的容器。

我在这里错过了什么吗?

访问UI - https://my_vm_ip:hostport

请注意,此端口安全规则是开放的世界。

回答

0

docker run --it -p --rm --privileged 6443:443 image1

应该是:

docker run --it -p 6443:443 --rm --privileged image1

+0

我很抱歉,但是编辑建议做了改变,我正在使用你的建议。 –

+0

您需要对前两行进行更改...您必须在-p标志后面指定端口号。在你的代码中,你有两次列出'6443:443'和'7443:443'。如果您试图在同一台计算机上获取两个不同的容器来相互交谈,则应考虑使用链接。 http://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/ – carter

+0

不,我不想链接两个容器。我正尝试在不同的主机端口上运行两个不同的应用程序版本的容器。该容器仅侦听端口443。 –

0

您是否尝试过一些码头工人UI应用程序?也许通过UI而不是CLI来做同样的事情会更容易。

我使用自己的UI应用来做类似的事情。你可以试试它,如果你想https://github.com/alex-agency/AMHub。这是在Docker容器中运行的Web应用程序。 安装它只需要调用这个cmd:docker run -d -p 80:80 -p 8000:8000 -e DOCKER=$(which docker) -v /var/run/docker.sock:/docker.sock alexagency/amhub

+0

亚历克斯,请披露它是你的github代码,如果是的话。似乎是。 – Drew

+0

嗨德鲁,你说得对,它是我的。我编辑了我的答案。现在是否正确?谢谢。 – Alex

+0

太好了。将来如果有一个总结,甚至更大的代码或命令块(比如在一个文件中),只需要让人们通过一个存储库来节省时间。如果是这样的话。请记住,您可能决定删除存储库,并使答案无效。尽可能保持在这里。 – Drew