2017-10-10 110 views
-1

我在Docker中運行了Openshift。 沒有任何端口明確從任何開放班次容器發佈。碼頭集裝箱中的Openshift在端口443上運行,但端口未公開

但無論如何 - 應用程序可以從主機,端口8443到達。
這怎麼可能?

enter image description here

enter image description here

集羣開始,使用OpenShift二進制 「OC」。該命令是oc cluster up 所以我不知道,哪些參數傳遞給docker。

但在這裏我發現了一個HOWTO,關於直接啓動OpenShift,這些參數:

$ sudo docker run -d --name "origin" \ 
     --privileged --pid=host --net=host \ 
     -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys:/sys -v /sys/fs/cgroup:/sys/fs/cgroup:rw \ 
     -v /var/lib/docker:/var/lib/docker:rw \ 
     -v /var/lib/origin/openshift.local.volumes:/var/lib/origin/openshift.local.volumes:rslave \ 
     openshift/origin start 
+1

你使用'--network = host'嗎? – Henry

+1

你是怎麼開始的?這是使用「oc集羣」嗎?這是正常的,它會暴露端口8443訪問OpenShift Web控制檯。 'oc cluster up'工具會將容器暴露在適當的端口上。圖像中的EXPOSE語句只能用作文檔,因爲您仍然依賴於運行容器的任何內容來說明真正暴露的內容以及它在外部映射的內容。 –

+0

我擴展了有關如何啓動羣集的詳細信息。使用'oc集羣'。我不知道,一個容器可能會使用端口(這裏是8443),並沒有說明它暴露了端口。 – Skip

回答

0

通過@Henry的建議很可能因爲使用--net=host這可能意味着容器能搶什麼它需要的端口沒有他們需要申報