GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu pingnout jiné kontejnery v síti dockerů prostřednictvím jejich názvu hostitele?

smazat toto network_mode: bridge z vašeho nového souboru, pracoval pro mě =).


Poděkování tgogosovi:Jen jsem musel použít jiný než výchozí most.

Pro úplnost zde je moje pracovní konfigurace.

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

A ping nyní funguje.

$ 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

Dalším řešením, které jsem vyzkoušel a pracoval, bylo explicitní propojení obsahu, který chcete pingnout, s názvem hostitele. Například mám postgres kontejner a server se k němu chce připojit.

Spusťte server s následujícím

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

V prostředí serverového kontejneru pak můžete pingnout pomocí (s ohledem na postgres je na stejném mostě/síti a běží)

ping postgres 

Od --link byl zastaralý, je doporučeno použít síťový most.

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

pak se dva kontejnery mohou navzájem pingovat podle jména.


Linux
  1. Jak odstranit všechny kontejnery Docker

  2. Jak mohu tunelovat veškerý síťový provoz přes SSH?

  3. Jak pingnout, když jste za proxy?

  1. Jak mohu povolit Ping na virtuálním počítači Azure Linux

  2. QEMU jak pingnout hostitelskou síť?

  3. Jak zadat název hostitele pro běžící kontejner?

  1. Jak používat Docker Compose

  2. Jak připojit kontejnery Docker

  3. Jak vypsat Docker kontejnery