Mengatur container Docker ke IP statis dengan Docker Compose

Saya sedang mencoba membuat static IP di container unifi saya, tapi saya tidak bisa membuat jaringan menemukannya. Berikut adalah pengaturan jaringan saya di docker compose:

services:
unifi-os-server:
image: Package unifi-os-server · GitHub
networks:
unifi_network:
ipv4_address: 192.168.0.50
container_name: Unifi-OS-Server
cgroup: host
cap_add:
- NET_RAW
- NET_ADMIN
extra_hosts:
host.docker.internal: host-gateway
.
networks:
unifi_network:
name: Unifi OS Server
driver: bridge
ipam:
config:
- subnet: 192.168.0.0/24
gateway: 192.168.0.1

Virtual Switch yang sudah dibuat:

Virtual Switch:
Container Network (br-656dddb1c5d3)
Alamat IP:
192.168.0.1
Fisik:

Virtual:
Unifi-OS-Server_Virtual Adapter 1
Anggota:
Container Station

Saya bener-bener bingung buat jalanin ini. Nggak tahu masalahnya di pengaturan docker compose atau virtual switchnya yang salah setup. Ada yang bisa bantu?

Kamu harus menempelkan compose dalam tanda kutip teks terformat, kalau tidak, postingan tidak akan tampil dengan benar.

Sudah lihat manual qnet?

Terima kasih untuk tautannya. Saya kehilangan driver qnet untuk DHCP dan statis.

Setelah berjam-jam pusing, akhirnya saya berhasil membuatnya bekerja dengan mengubah pengaturan jaringan:

driver: macvlan
driver_opts:
parent: eth2

Ngomong-ngomong, sebaiknya saya pakai driver qnet statis saja nggak?

Hai, @Hypnosis4u2nv Informasi berikut berasal dari tim RD kami.

Apakah Anda perlu menggunakan qnet atau macvlan tergantung pada kebutuhan Anda.

macvlan sudah cukup jika tujuan Anda hanya agar container dapat diakses melalui IP LAN statis dari perangkat lain di jaringan.

Namun, jika Anda juga membutuhkan sistem host QNAP atau container lain di NAS yang sama dapat berkomunikasi dengan container yang di-deploy, maka qnet adalah pilihan yang tepat — macvlan memiliki keterbatasan yang diketahui di mana host tidak dapat mengakses container pada antarmuka macvlan.

Untuk panduan langkah demi langkah dalam melakukan deployment UniFi container melalui UI Container Station, silakan lihat FAQ berikut: How to Deploy UniFi Network Application via Docker on QNAP NAS? | QNAP

Terima kasih atas penjelasan mengenai perbedaan antara kedua driver tersebut. Karena saya hanya membutuhkan Unifi OS Server untuk berkomunikasi dengan perangkat Unifi lainnya di jaringan saya (inform/adoption) dan tidak memerlukan apa pun lagi di dalam host QNAP/kontainer, saya akan tetap menggunakan pengaturan macvlan.

Jadi sebenarnya tidak sulit jika kamu menggunakan YAML yang benar. Berikut adalah file YAML lengkap untuk container Uptime Kuma milikku. Perhatikan bagian “Networks”…

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"  # Ini memetakan port "3001" di container ke port "3001" di host
    volumes:
      - /share/Container/uptime-kuma:/app/data  # Mengonfigurasi storage agar tetap persisten
    environment:
      - TZ=America/Chicago  # Set zona waktu (ganti dengan zona waktu lokalmu supaya waktu monitoring sesuai)
      - UMASK=0022  # Atur permission file secara manual
    networks:
      kuma-network:
        ipv4_address: 192.168.1.23
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3001"]
      interval: 30s
      retries: 3
      start_period: 10s
      timeout: 5s
    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

networks:
  kuma-network:
    driver_opts:
      iface: eth0
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: eth0
      config:
        - subnet: 192.168.0.0/23
          gateway: 192.168.1.1

Sedikit membingungkan di sini.

Kamu menggunakan IP statis 192.168.1.23, tapi subnet jaringan yang kamu tentukan adalah 192.168.0.0/23?

Konfigurasi subnet saya juga mendefinisikan CIDR sebagai /24, bukan /23 seperti yang kamu set. Saya nggak tahu pengaruhnya dengan setup saya yang pakai driver macvlan, tapi saya lihat di dokumen QNAP untuk driver qnet, mereka memang menggunakan anotasi /23 itu.

192.168.0.0/23 memiliki subnet mask 255.255.254.0. Ini memungkinkan penggunaan IP dari 192.168.0.1 hingga 192.168.1.254.

Tidak ada yang “spesial” soal ini. Mirip seperti 10.0.0.0/8 (255.0.0.0) yang memungkinkan kamu menggunakan IP dari 10.0.0.1 sampai 10.255.255.254.

Saya memang butuh/ingin jaringan dengan ukuran yang lebih besar.

Tinggal sesuaikan saja dengan ukuran jaringanmu.

Terima kasih atas penjelasannya!