[Docker] Comment accéder à l'hôte depuis l'intérieur du conteneur. http: //host.docker.internal:

Vous pouvez accéder au port depuis l'intérieur du conteneur. Vérifiez avec la commande $ curl URL qui affiche le contenu de la page WEB.

Il existe deux méthodes de connexion: (1) spécifiant le port du conteneur et (2) spécifiant le port hôte.

Procédure d'accès

  1. Entrez dans le conteneur en cours d'exécution

-Docker exec -it [nom du conteneur] bash

Vous pouvez maintenant accéder au bash à l'intérieur du conteneur. Selon le conteneur, il peut s'agir de sh au lieu de bash.

  1. Demande http avec curl

▼ Lors de l'accès direct au port du conteneur -Curl http: // [nom du conteneur]: [port côté conteneur]

▼ Lors de l'accès au port côté hôte -Curl http: //host.docker.internal: [port côté hôte]

Illustration

Vérifiez le conteneur en cours d'exécution


$ docker ps
CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                            NAMES
d4ae7996f53c        django_web                  "python manage.py ru…"   10 hours ago        Up 10 hours         0.0.0.0:8100->8000/tcp                           django_web_1

0.0.0.0:8100-> 8000 / tcp C'est important!

"Numéro de port côté hôte-> Numéro de port dans le conteneur"

«0.0.0.0» représente l'accès depuis tous les ports, pas localhost.

Ainsi, "0.0.0.0:8100-> 8000" signifie mapper tous les 8100 accès au port 8000 dans le conteneur.


Entrez dans le conteneur


$ docker exec -it django_web_1 bash
root@d4ae7996f53c:/code#

Démarrez bash avec le nom de conteneur "django_web_1".


### Lors de l'accès direct au port du conteneur

python


root@d4ae7996f53c:/code# curl http://django_web_1:8000

http: // nom du conteneur: numéro de port côté conteneur, vous pouvez accéder au port spécifié par le conteneur.


Si vous spécifiez le port côté hôte par erreur, une erreur se produira.

Exemple d'erreur


root@d4ae7996f53c:/code# curl http://django_web_1:8100
curl: (7) Failed to connect to django_web_1 port 8100: Connection refused

### Lors de l'accès au port côté hôte Utilisez `host.docker.internal: numéro de port côté hôte` pour accéder au port côté hôte.

python


root@d4ae7996f53c:/code# curl http://host.docker.internal:8100

host.docker.internal est le DNS préparé du côté docker. Correspond à localhost du côté hôte.

C'est de l'extérieur du conteneur Identique à l'exécution de curl http: // localhost: 8100.


Sortez du conteneur


root@d4ae7996f53c:/code# exit
$

c'est tout.

Recommended Posts

[Docker] Comment accéder à l'hôte depuis l'intérieur du conteneur. http: //host.docker.internal:
[Docker] Copie des fichiers du conteneur Docker vers l'hôte
Comment vérifier le journal dans le conteneur Docker
Comment obtenir un heapdump à partir d'un conteneur Docker
Copier les fichiers du conteneur Docker vers l'hôte (docker cp)
Comment créer un serveur Jenkins avec un conteneur Docker sur CentOS 7 de VirtualBox et accéder au serveur Jenkins à partir d'un PC local
Examinez le remplacement de Docker vers Podman.
Accéder à MySQL sur un conteneur Docker à partir d'un programme Java local (OS hôte)
Paramètre pour quitter le conteneur Docker avec VScode
Comment mettre à jour un fichier prédéfini dans un conteneur Docker
Comment monter l'emplacement du fichier de commandes via WSL2 et démarrer le conteneur Docker
Comment afficher la quantité de disque utilisée par le conteneur Docker pour chaque conteneur
J'étais accro à ne pas pouvoir me connecter à AWS-S3 à partir du conteneur Docker
Comment installer Docker
3. Créez une base de données à laquelle accéder à partir du module Web
Comment écrire Scala du point de vue de Java
Comment déployer à partir d'une image Docker locale vers Heroku
[Java] Comment extraire le nom du fichier du chemin
Comment déterminer la demande de prélecture depuis le navigateur
[Docker] Comment voir le contenu des volumes. Démarrez un conteneur avec les privilèges root.
Écrivons comment créer une API avec SpringBoot + Docker à partir de 0
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.
Comment accéder à un conteneur s'exécutant sur AWS Fargate
Comment créer un formulaire pour sélectionner une date dans le calendrier
Conteneur Nginx qui affiche le nom d'hôte de l'hôte exécutant Docker
Comment obtenir les informations les plus longues de Twitter à partir du 12/12/2016
[Docker] Comment déconnecter de force une session connectée à la base de données [Postgres]
Comment appliquer le format de code C à partir de la ligne de commande
Lorsque l'accès demandé à la ressource est refusé lors de la transmission avec Docker
Comment définir l'adresse IP et le nom d'hôte de CentOS8
Comment exécuter l'exemple Kotlin Coroutine à partir de la ligne de commande
[Note] Comment redémarrer le conteneur Windows configuré avec docker-compose
[GCP] Jusqu'à ce que vous transmettiez l'image Docker locale à Container Registry
[Java] Comment convertir du type String en type Path et obtenir le chemin
Comment utiliser la méthode link_to
Introduction à Linux Container / Docker (Partie 1)
Comment utiliser la méthode include?
Comment utiliser la méthode form_with
Comment trouver l'angle moyen
Comment créer un conteneur Java
Comment utiliser la classe wrapper
Introduction à Linux Container / Docker (Partie 2)
Comment ajouter la fonction de suppression
Mettre à jour MySQL de 5.7 à 8.0 avec Docker
Comment démarrer Camunda avec Docker