2017-10-10 18 views
-1

J'ai ouvert la commande Openshift dans le menu fixe. Aucun port n'est explicitement publié à partir d'un conteneur de travail ouvert.La commande Openshift du conteneur docker s'exécute sur le port 443, mais le port n'est pas publié.

Mais de toute façon - l'application est accessible depuis l'hôte, sur le port 8443.
Comment est-ce possible?

enter image description here

enter image description here

Le cluster a été démarré, en utilisant un binaire OpenShift "oc". La commande était oc cluster up Donc je ne sais pas, quels paramètres ont été passés à docker.

Mais ici, je trouve un guide pratique, à commencer OpenShift directement, et ces paramètres sont utilisés:

$ 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

Utilisez-vous '--network = host'? – Henry

+1

Comment avez-vous commencé? Est-ce en utilisant '' oc cluster up''? Il est normal qu'il expose le port 8443 pour accéder à la console Web OpenShift. L'outil '' oc cluster up'' exposera les conteneurs sur les ports appropriés. Les instructions '' EXPOSE'' dans les images ne servent que de documentation, car vous dépendez toujours de ce qui s'exécute sur le conteneur pour dire ce qui est réellement exposé et ce qu'il fait correspondre à l'extérieur. –

+0

J'ai étendu l'article avec des détails sur la façon dont le cluster a été démarré. 'oc cluster up' a été utilisé. Et je ne savais pas, qu'un conteneur peut utiliser des ports (ici 8443), sans préciser qu'il expose les ports. – Skip

Répondre

0

comme suggéré par @Henry il est probable que --net=host est utilisé qui peut signifier que le récipient peut saisir ce les ports dont ils ont besoin sans qu'ils aient besoin d'être déclarés