2017-09-13 3 views
0

Pouvez-vous m'expliquer une chose en rapport avec les ports de conteneur Docker?Docker Container - paramètres des ports

Scénario: J'ai créé un nouveau Dockerfile et le fichier docker-compose.yml (https://github.com/fdolsky321/Jenkins_Docker) et j'EXPOSER 49005 ainsi que je les ports configuré docker-compose.yml à 49005. (le volume docker-compose correctement défini? J'utilise Windows 10 Pro).

Ensuite, je viens de construire et de pousser cela et à la fin, j'ai utilisé docker-composer ... Mais alors j'ai vu, qu'il y a toujours les ports par défaut 8080 et 50000, pouvez-vous m'expliquer, comment est-ce possible? il y a encore ces ports, que je ne veux pas utiliser?

Puis j'essaye d'exécuter cette image, mais je ne peux pas ouvrir jenkins sur n'importe quel port (8080, 50000, 49005). Cela marche plutôt bien, quand j'utilise la commande docker run, mais je voudrais utiliser les ports utilisés dans le fichier docker-compose.yml.

Pouvez-vous donner des conseils, comment les ports fonctionnent dans docker?

https://imgur.com/a/0KLFs

+0

ne l'exposez pas à dockerfile, supprimez ce calque. Dans docker-compose.yml, faites juste '49005: 8080'. essayez dans le service des ports dans votre fichier yaml. –

Répondre

0

Probablement ces ports ne sont pas mis en correspondance dans la machine hôte où le conteneur est en cours d'exécution. Il existe une directive dans les ports de fichiers docker-composer. Pour mapper les ports dans la machine hôte, il suffit de spécifier les ports associés via la destination dans laquelle un conteneur interne sera accessible depuis la machine hôte. E.g:

ports: 
    - 7777:7777 

Ainsi, 7777 à l'intérieur du conteneur sera accessible via 7777 qui est sur l'hôte. L'hôte côté gauche un et le conteneur côté droit un. Voir les documents pour plus de détails: https://docs.docker.com/compose/compose-file/#ports
Excusez-moi si j'ai mal compris votre question.

0

Si vous exécutez docker ps, vous verrez quelque chose comme ce 0.0.0.0:49005->8080/tcp dans votre section de ports pour votre conteneur.

Si vous utilisez l'exécution docker alors vous devez faire docker run -p 49005:49005 my-image

ou

Si vous utilisez docker-Compose alors vous devez ajouter

ports: 
     - "49005:49005"