GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je envoyer un ping à d'autres conteneurs dans un réseau Docker via leur nom d'hôte ?

supprimer ce network_mode: bridge à partir de votre fichier de composition, a fonctionné pour moi =).


Remerciements à tgogos :je n'avais qu'à utiliser le pont non par défaut.

Pour être complet, voici ma configuration de travail.

version: "3"
services:
  main:
    networks:
      test:
    image: python:3.5.2
    entrypoint: /usr/bin/yes

  another:
    networks:
      test:
    image: python:3.5.2
    entrypoint: /usr/bin/yes


networks:
  test:
    driver: bridge

Et le ping fonctionne maintenant.

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
faa9f96d46a9        python:3.5.2        "/usr/bin/yes"      9 seconds ago       Up 9 seconds                            dockerplayground_main_1
5b2d56ac0cd7        python:3.5.2        "/usr/bin/yes"      9 seconds ago       Up 8 seconds                            dockerplayground_another_1
$ docker exec -it faa ping another
PING another (172.18.0.2): 56 data bytes
64 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.054 ms
64 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.047 ms
64 bytes from 172.18.0.2: icmp_seq=2 ttl=64 time=0.059 ms
64 bytes from 172.18.0.2: icmp_seq=3 ttl=64 time=0.066 ms

Une autre solution que j'ai essayée et travaillée consistait à lier explicitement le contenu auquel vous souhaitez envoyer un ping avec le nom d'hôte. Par exemple, j'ai un postgres conteneur, et un server souhaite s'y connecter.

Exécutez le server avec ce qui suit

docker run --name server --link postgres someserver:latest

Dans l'environnement de conteneur de serveur, vous pouvez ensuite envoyer un ping avec (étant donné postgres est sur le même pont/réseau et est en cours d'exécution)

ping postgres 

Depuis --link est obsolète, il est recommandé d'utiliser le pont réseau.

docker network create YOURNETWORK
docker run --name postgres --network='YOURNETWORK' postgres:latest
docker run --name server --network='YOURNETWORK' server:latest

alors les deux conteneurs peuvent se pinger par nom.


Linux
  1. Comment répertorier les conteneurs Docker

  2. Comment supprimer tous les conteneurs Docker

  3. Comment pinger derrière un proxy ?

  4. Comment puis-je activer Ping sur une machine virtuelle Azure Linux

  5. QEMU comment pinger le réseau hôte ?

Comment élaguer les ressources Docker inutilisées

Comment exécuter des conteneurs Docker

Comment supprimer les conteneurs Docker

Comment arrêter les conteneurs Docker

Comment gérer les conteneurs Docker

Comment configurer les espaces de noms réseau dans les conteneurs Docker