web-dev-qa-db-fra.com

Comment transférer un port Docker-Machine vers mon port hôte sous OSX?

Je livre un conteneur de docker privé dans mon entreprise et je veux que mes collègues puissent accéder à notre réseau interne, le problème est que mon OS invité est OSX et donc je ne peux accéder à mon application qu'en utilisant le 192.168.99.100:3000 IP par défaut de la machine Docker.

Comment puis-je transférer le port docker-machine 3000 vers mon port Host 80?

18
Juliano Pacheco

À l'heure actuelle, Docker Machine est une machine virtuelle exécutée sous VirtualBox dans votre machine, donc pour exposer votre port d'application, vous devez mapper le port de votre machine virtuelle sur votre port d'hôte.

Pour ce faire, il existe deux options, mais avant de vous assurer que votre machine Docker est arrêtée de fonctionner:

docker-machine stop default     # see PS below if docker machine isn't default

Option 1 - Utilisez l'interface VirtualBox

  • Ouvrez VirtualBox Manager
  • Sélectionnez votre image Docker Machine VirtualBox (par exemple: par défaut)
  • Ouvrez Paramètres -> Réseau -> Avancé -> Port Forward
  • Ajoutez le nom de votre application, le port hôte souhaité (par exemple: 80) et votre port invité (par exemple: 3000)

Option 2 - Utilisez la ligne de commande VirtualBox

Exécutez simplement la commande suivante avec vos propres paramètres:

VBoxManage modifyvm "dev" --natpf1 "myapp,tcp,,80,,3000"

Considérations finales

Vous pouvez maintenant démarrer votre Docker Machine en cours d'exécution:

docker-machine start default
eval $(docker-machine env default)

Ensuite, démarrez simplement votre conteneur Docker d'application et testez-le en cours d'exécution http: // localhost / .

P.S .: Le nom de votre Docker Machine peut ne pas être par défaut , dans ce cas, changez le nom en conséquence.

26
Felipe Plets