siec macvlan w docker

siec macvlan w docker
Marius.Maximus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2201
0

Mam serwer doker-a na IP:192.168.10.12
Chciałbym uruchomić kontener w tej samej sieci co serwer doker-a np. o ip 192.168.10.111

Kopiuj
docker network create -d macvlan \
  --subnet=192.168.10.0/24 \
  --gateway=192.168.10.1 \
  -o parent=eth0 \
  macvlan_net
Kopiuj
version: "3.9"

networks:
  macvlan_net:
    external: true

services:
  my_service:
    image: nginx:latest
    container_name: my_nginx
    networks:
      macvlan_net:
        ipv4_address: 192.168.10.111
    restart: unless-stopped

nie widzę jednak komputera 192.168.10.111 w sieci
z żadnego komputera nie działa ping 192.168.10.111

kontener dostaje IP ale na zewnetrz nie widać tego IP

PaulGilbert
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1027
0

A co sprawdzałeś?
Taka próba zgadywania, co bym zrobił: pewnie inspect dla sieci i kontenera, żeby przejrzeć ustawienia sieci, docker ps, żeby sprawdzić, czy kontenery działają
A może masz gdzieś firewalla, który blokuje, może jakieś porty masz poblokowane?
BTW czemu w ten sposób to skonfigurowałeś, że dla serwisu przypisujesz IP?
Napisz coś więcej o konfiguracji ewentualnie.

Ja ostatnio do debugowania zaprzęgam AI - czasami potrafi pomóc, czasami nie.

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
0

W tym przypadku po prostu kernel linuksowy traktuje pakiet jako lokalny (host i macvlan na parent interefejsie, to ten sam interfejs) i uwala przetwarzanie (chyba tu: https://github.com/torvalds/linux/blob/master/drivers/net/macvlan.c#L459) . Zdaje się, że motywacją jest uniknięcie nieskończonej pętli na warstwie routingu.

Tu masz opisane obejście dla komunikacji host - container: https://blog.oddbit.com/post/2018-03-12-using-docker-macvlan-networks/

Marius.Maximus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2201
0

Chyba mam "za głeboko zakopany" serwer doker-a albo macvlan wymaga niskopoziomowego dostępu do kart sieciowej

Bo nie działa na dokerze który jest virtualna maszyną na serwerze Windows
A jak uruchomię fizyczną maszynę z Linux i na niej Doker i tam to samo to wszystko działa

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.