Comment transférer le port dans Docker

Comment Transferer Le Port Dans Docker



Docker est une plate-forme de dockerisation très appréciée qui dockerise les applications et les logiciels dans un environnement isolé appelé conteneur. Lors de l'exécution d'applications dans des conteneurs, les utilisateurs doivent généralement accéder à l'application conteneurisée en dehors du conteneur. Pour cela, les utilisateurs doivent appliquer la technique de redirection de port.

La redirection de port dans Docker est un processus qui nous permet d'exposer le port du conteneur sur le système hôte Docker. Cela nous permet d'exécuter l'application dans un environnement isolé et également de la rendre accessible depuis l'extérieur du conteneur sur une machine utilisateur.

Cet article démontrera :







Comment transférer un port dans Docker à l'aide de la balise « -p » ou « –publish »

Pour transférer un port dans Docker, l'utilisateur doit publier le port du conteneur sur l'hôte Docker. Pour cela, exécutez le conteneur sur l'hôte docker en utilisant le ' -p ' ou ' -publier 'balise dans le' exécution du docker ' commande.



Pour une démonstration appropriée, suivez les instructions ci-dessous.



Étape 1 : Créer un fichier Docker

Tout d’abord, créez un fichier et définissez son nom comme « Fichier Docker ». Ce fichier contient les instructions textuelles pour créer le modèle du conteneur Docker. Par exemple, dockerisons le simple programme Golang en utilisant l'extrait ci-dessous dans le Dockerfile :





DE golang : 1.8

RÉPERT TRAVAIL / aller / src / application

COPIER main2.go .

COUREZ, allez construire -O serveur Web .

EXPOSER 8080

CMD [ './serveur Web' ]

Dans l'extrait donné :

  • ' DEPUIS 'La commande est utilisée pour définir l'image de base.
  • ' RÉPERT TRAVAIL » définit le répertoire de travail du conteneur.
  • ' COPIE ' La commande créera une copie du fichier programme dans le chemin spécifié par le conteneur.
  • ' COURIR ' La commande exécutera la commande spécifiée dans le conteneur.
  • ' EXPOSER ' La commande spécifie le port sur lequel le conteneur sera écouté.
  • ' CMD » précise les points exécutables du conteneur.

Étape 2 : Créer un programme Golang

Ensuite, créez un autre fichier nommé « main2.go ' et collez le programme Golang fourni ci-dessous qui imprime une simple chaîne sur le port ' 8080 » :



paquet principal

importer (

'fmt'

'enregistrer'

'net/http'

)

gestionnaire de fonctions ( Dans http.ResponseWriter, r * http.Requête ) {

html := `

DOCTYPEhtml >

< HTML >

< tête >

< titre > Bonjour Golang ! titre >

< style >

corps {

Couleur de l'arrière plan: #D2B48C ;

}

.récipient {

alignement du texte : centre ;

remplissage : 50 px ;

}

style >

tête >

< corps >

< div classe = 'récipient' >

< h1 > Bonjour ! Bienvenue dans le didacticiel LinuxHint h1 >

div >

corps >

HTML >`

w.En-tête ( ) .Ensemble ( 'Type de contenu' , 'texte/html' )

fmt.Fprint ( Dans , HTML )

}

fonction principale ( ) {

http.HandleFunc ( '/' , gestionnaire )

log.Fatal ( http.ÉcouterEtServir ( '0.0.0.0:8080' , nul ) )

}

Étape 3 : générer l’instantané du conteneur

Maintenant, générez un instantané pour le conteneur à partir du Dockerfile spécifié ci-dessus. Pour cela, accédez d’abord au répertoire où le Dockerfile est créé à l’aide du «  cd ' commande:

Ensuite, générez la nouvelle image du conteneur à l'aide de la commande donnée :

construction de docker -t golang-img.

Le résultat donné montre que l'image est créée selon le contexte de construction fourni.

Étape 4 : transférer le port hôte vers le port du conteneur

Maintenant, exécutez le conteneur et transférez le port hôte vers le port du conteneur pour accéder à l'application dockerize en dehors du conteneur sur une machine locale. A cet effet, exécutez le 'docker run –name -p : ' commande:

exécution du docker --nom suite -p 8080 : 8080 golang-img

Ici le ' -p ' L'indicateur est utilisé pour publier le port d'exécution du conteneur sur l'hôte Docker :

Étape 5 : Vérification

Pour vérification, affichez les conteneurs en cours d'exécution à l'aide de « docker ps » :

docker ps

Dans le résultat ci-dessous, l'application conteneurisée écoute sur les interfaces réseau disponibles ' 0.0.0.0 « sur le port publié » 8080 ». Cela implique que le port est transmis à l'application en cours d'exécution sur la machine hôte :

Maintenant, lancez le navigateur et accédez à « http://localhost:8080/ » et vérifiez si la technique de redirection de port est appliquée ou non et si l'application conteneurisée est accessible en dehors du conteneur sur le système hôte :

Ici, nous avons transféré avec succès le port hôte vers le port conteneur et l'application est accessible sur l'hôte Docker.

Comment transférer un port dans Docker à l'aide de Docker Compose

Pour transférer le port du conteneur vers l'hôte afin d'accéder à l'application conteneurisée depuis l'extérieur du conteneur, l'utilisateur peut utiliser le «  port ' Entrez le fichier de composition yaml. Docker compose est un service Docker qui nous permet d'exécuter différents services et applications dans différents conteneurs. En utilisant le ' docker-compose.yml ', l'utilisateur peut également transférer le port du conteneur vers la machine hôte et disposer d'une connexion d'application avec le monde extérieur.

Consultez la procédure ci-dessous pour les illustrations.

Étape 1 : Créer un fichier de composition

Tout d’abord, générez un fichier nommé « docker-compose.yml ' et ajoutez le contenu suivant au fichier :

version: '3'

prestations de service:

la toile:

construire: .

ports :

- 8080 : 8080

Dans l'extrait ci-dessus, le ' ports La clé ' est utilisée pour connecter l'hôte au port du conteneur. Ici, la première valeur est le port hôte et la deuxième valeur est le port du conteneur.

Étape 2 : Lancer l'application

Après avoir spécifié les instructions dans le fichier de composition, lancez l'application dans un conteneur à l'aide du bouton « docker-composer ' commande:

docker-composer

Étape 3 : Vérification

Pour vérification, répertoriez les conteneurs de composition à l’aide du «  docker-composer ps ' commande:

docker-composer ps -un

Pour vérifier si le conteneur est accessible sur la machine hôte, accédez au «  http://localhost:8080/ 'URL. Ici, vous pouvez voir que nous avons effectivement transféré le port du conteneur sur l'hôte :

Comment transférer le port vers un réseau spécifique

Pour rediriger un port de conteneur vers un réseau spécifique, l'utilisateur doit spécifier le réseau sur lequel il souhaite accéder au conteneur à l'aide du «  -réseau ' option. Regardez les étapes données pour la démonstration.

Étape 1 : Créer un réseau

Créez un nouveau réseau en utilisant le ' réseau docker créer ' commande. Par défaut, ce réseau utilisera un pilote de pont :

réseau docker créer mygo-network

Pour afficher les réseaux Docker, utilisez le ' réseau docker ls ' commande:

réseau Docker ls

Ici, nous avons réussi à créer « mongo-réseau ' qui utilise ' pont ' conducteur:

Étape 2 : Cartographier le réseau

Pour exécuter et accéder au conteneur sur le réseau spécifique à l'aide de la technique de redirection de port, utilisez la commande ci-dessous :

exécution du docker -p 8080 : 8080 --réseau mygo-réseau golang-img

Dans la commande donnée, le «  -p ' L'option publie le conteneur sur un port spécifié du réseau spécifié. Ici le ' -réseau ' L'option est utilisée pour définir le réseau docker :

Pour vérification, accédez à nouveau au « http://localhost:8080 » et vérifiez si le conteneur est accessible sur le réseau spécifié ou non :

Le résultat ci-dessus indique que nous avons effectivement redirigé le port à conteneurs sur un réseau spécifique.

Note: Lors de l'utilisation du réseau « hôte », l'utilisateur n'a pas besoin de publier le port du conteneur vers l'hôte à l'aide du « -p ' ou ' -publier ' option.

Transférer le port vers un réseau spécifique à l'aide de Docker Compose

Ajoutez l'extrait suivant dans le champ ' docker-compose.yml ' déposer. Dans l'extrait ci-dessous, le ' réseaux La clé ' est utilisée pour spécifier le réseau :

version: '3'
prestations de service:

la toile:
construire: .
ports :
- 8080 : 8080

Maintenant, lancez l'application dans un conteneur en utilisant le ' docker-composer ' commande:

docker-composer

Nous avons couvert les méthodes de redirection de port dans Docker.

Conclusion

Pour transférer le port dans Docker afin d'accéder à l'application Dockerize en dehors du conteneur, l'utilisateur peut soit utiliser le ' -p ' ou ' -publier 'option dans le' exécution du docker ' ou l'utilisateur peut utiliser la commande ' ports ' dans le fichier de composition Docker. Afin d'accéder au conteneur sur un réseau spécifique, l'utilisateur peut rediriger le port du conteneur sur un réseau en utilisant le ' –réseau ' option. Ce blog a démontré les techniques pour transférer les ports dans Docker.