siec macvlan w docker

siec macvlan w docker
Marius.Maximus
  • Rejestracja:ponad 14 lat
  • Ostatnio:minuta
  • Postów:2100
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


--
Nie przyjmuję reklamacji za moje rady, używasz na własną odpowiedzialność.
Programowanie bez formatowania to jak chodzenie ze spodniami spuszczonymi na kostki. Owszem da się ale po pierwsze nie wygodne, po drugie nieprzyzwoicie wygląda.
Przed zaczęciem nowego wątku przeczytam problem XY
edytowany 3x, ostatnio: Marius.Maximus
PaulGilbert
  • Rejestracja:około 7 lat
  • Ostatnio:około 2 godziny
  • Postów:931
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:prawie 10 lat
  • Ostatnio:12 dni
  • Postów:2370
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:ponad 14 lat
  • Ostatnio:minuta
  • Postów:2100
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


--
Nie przyjmuję reklamacji za moje rady, używasz na własną odpowiedzialność.
Programowanie bez formatowania to jak chodzenie ze spodniami spuszczonymi na kostki. Owszem da się ale po pierwsze nie wygodne, po drugie nieprzyzwoicie wygląda.
Przed zaczęciem nowego wątku przeczytam problem XY
PaulGilbert
może w ustawieniach wirtualki musisz coś pogrzebac ewentualnie.

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.