2015-11-03 230 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