GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo hacer ping a otros contenedores en una red docker a través de su nombre de host?

eliminar este network_mode: bridge de su archivo de redacción, funcionó para mí =).


Créditos a tgogos:solo tuve que usar el puente no predeterminado.

Para completar, aquí está mi configuración de trabajo.

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

Y el ping ahora funciona.

$ 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

Otra solución que probé y trabajé fue vincular explícitamente el contenido al que desea hacer ping con el nombre del host. Por ejemplo, tengo un postgres contenedor y un server quiere conectarse a él.

Ejecute el server con lo siguiente

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

En el entorno del contenedor del servidor, puede hacer ping con (dado postgres está en el mismo puente/red y se está ejecutando)

ping postgres 

Desde --link ha quedado obsoleto, se recomienda utilizar el puente de red.

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

entonces los dos contenedores pueden hacer ping entre sí por nombre.


Linux
  1. Cómo usar Docker Compose

  2. Cómo conectar contenedores Docker

  3. Cómo pasar variables de entorno a contenedores Docker

  4. Cómo eliminar todos los contenedores de Docker

  5. ¿Cómo puedo canalizar todo el tráfico de mi red a través de SSH?

Cómo podar los recursos de Docker no utilizados

Cómo ejecutar contenedores Docker

Cómo eliminar contenedores Docker

Cómo detener los contenedores de Docker

Cómo gestionar contenedores Docker

Cómo configurar espacios de nombres de red en contenedores Docker