GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya bisa melakukan ping ke wadah lain di jaringan buruh pelabuhan melalui nama host mereka?

hapus network_mode: bridge ini dari file penulisan Anda, berhasil untuk saya =).


Penghargaan untuk tgogos:Saya hanya perlu menggunakan jembatan non-default.

Untuk kelengkapan, inilah konfigurasi kerja saya.

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

Dan ping sekarang berfungsi.

$ 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

Solusi lain yang saya coba dan berhasil adalah secara eksplisit menautkan konten yang ingin Anda ping dengan nama host. Misalnya, saya punya postgres wadah, dan server ingin menyambungkannya.

Jalankan server dengan yang berikut

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

Di lingkungan penampung server, Anda kemudian dapat melakukan ping dengan (diberikan postgres berada di jembatan/jaringan yang sama dan sedang berjalan)

ping postgres 

Sejak --link sudah tidak digunakan lagi, disarankan untuk menggunakan jembatan jaringan.

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

maka kedua wadah tersebut dapat melakukan ping satu sama lain dengan nama.


Linux
  1. Cara Mendaftar Kontainer Docker

  2. Bagaimana saya bisa menyalurkan semua lalu lintas jaringan saya melalui SSH?

  3. Bagaimana cara melakukan ping saat berada di belakang proxy?

  1. Cara Menggunakan Tulis Docker

  2. Bagaimana Menghubungkan Kontainer Docker

  3. Bagaimana cara menentukan nama host untuk wadah yang sedang berjalan?

  1. Bagaimana Melewati Variabel Lingkungan ke Docker Containers

  2. Cara menghapus semua wadah Docker

  3. Bagaimana saya bisa mendaftar semua IP di jaringan yang terhubung, lebih disukai melalui Terminal?