ping hostname antar container

Hai semua ;

Saya menjalankan TS-464 dengan Container-Station.

Saya telah menyiapkan beberapa container (ha, grist, lldap, authelia ..), semuanya diakses melalui container caddy sebagai reverse proxy. Mereka semua langsung diinstal di CS sebagai “container”, bukan melalui file compose.

Semua berjalan baik, kecuali saya harus melakukan reverse proxy ke alamat 10.0.3.x, karena hostname tidak berfungsi. Tidak masalah dengan itu, sampai saya me-reboot NAS untuk pembaruan firmware: semua container berubah IP-nya .. saya harus mengkonfigurasi ulang Caddy dengan IP yang baru …

Saya pikir docker memiliki semacam “dns resolver” yang terdokumentasi dengan hostname container di jaringan yang sama, jadi saya bisa merujuk mereka di Caddy dengan hostname. Apakah saya melewatkan sesuatu?

Menginstal server dns internal juga tidak akan berhasil, jika IP container terus berubah setiap kali reboot.

Opsi lain adalah mengatur IP statis untuk container, tapi saya tidak menemukan di mana melakukannya (atau mungkin lewat ssh di command line ..)

Ada yang bisa berbagi praktik terbaik?

Salam,
Xavier

Secara default, kontainer menggunakan DHCP. Saya baru saja melihat dan saya tidak tahu apakah ada cara untuk mengatur alamat IP tetap untuk kontainer. Tidak ada opsi tersebut di pengaturan kontainer. Mungkin Anda harus melakukannya di Compose.

Anda dapat memasukkan kontainer ke mode Bridge di mana mereka kemudian terhubung ke adaptor jaringan tertentu. Anda kemudian dapat menetapkan IP tetap untuk mereka.

untuk static pada container standar, Anda dapat mengatur IP di bagian networking tetapi akan menggunakan mode bridge.

Saya tahu bahwa dalam aplikasi yang menggunakan compose, Anda dapat mereferensikan dengan nama aplikasi selama semua container berada di jaringan yang sama. Saya melakukan ini untuk nginx-proxy-manager. Di bawah ini adalah contoh compose yaml untuk npm dan aplikasi lain yaitu dozzle. Saya rasa saya harus membuat jaringan backendApps menggunakan perintah docker, saya tidak ingat pasti. Npm-nya belum lengkap, hanya menunjukkan penggunaan dua jaringan. Semua aplikasi lain saya hanya berada di backendApps dan NPM menyediakan reverse proxy dan https.

services:
  npm:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    stdin_open: true
    tty: true
    container_name: npm
    networks:
      qnet-static-eth0-custom:  # untuk definisi ip/mac eksternal
      backendApps: # semua container yang berbagi harus memiliki jaringan ini.

networks:     
  qnet-static-eth0-custom:
    external: true
  backendApps:
    external: true
services:
  dozzle:
    image: amir20/dozzle:latest
    container_name: dozzle
    stdin_open: true
    tty: true
    networks:
      - backendApps
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 2080:8080

networks:     
  backendApps:
    external: true

cara mereferensikan di npm

Saya tidak membahas semua detail yang dibutuhkan untuk file compose, tapi jika Anda tahu cara menggunakannya, ini seharusnya membantu.

Terima kasih banyak; saya akan mencoba semua ini dan akan memberikan umpan balik di sini.

Postingan terakhir bahkan membuka jalan bagi saya untuk mengatasi masalah lain: reverse proxy berada di jaringan default untuk kontainer (lxcbr0), tetapi kontainer di “aplikasi” berada di jaringan mereka sendiri. Mungkin jika saya menambahkan jaringan lxcbr0 ke aplikasi saya, saya bisa melakukan reverse proxy dari Caddy ke aplikasi tersebut (saat ini, mereka bahkan tidak bisa saling ping lewat alamat IP).

Saya akan terus mengabari Anda; terima kasih atas waktunya!
Xavier

Saya memposting di sini umpan balik yang sudah saya janjikan.

Saya akhirnya berhasil menghubungkan reverse proxy (Caddy) secara manual ke jaringan yang dibuat untuk “aplikasi” (yaitu file compose):

docker network connect my_app_default caddy-1

Ini menyelesaikan masalah konektivitas, dan juga masalah DNS internal: di file caddy saya, saya bisa melakukan reverse proxy ke “nama layanan” alih-alih IP container.

Terima kasih untuk waktu kalian berdua; saya harap ini akan berguna bagi siapa saja yang mencari kasus penggunaan ini di Google.

Salam,
Xavier

1 Suka