Forslag på hvordan man får Docker til å prate på samme nettverket, bruke IPer på vanlige nettverket/LAN, og ha forbindelse internt i tillegg som er kjent for å være noe spesielt.
Opprette eget docker-nettverk som kobles opp mot nettverket, sett gjerne en begrensning på hvilke IPer som skal tillates som i eks her “/27″(10.0.0.128-158).
docker network create -d macvlan \ --subnet=10.0.0.0/24 \ --gateway=10.0.0.1 \ --ip-range=10.0.0.128/27 \ --aux-address 'host=10.0.0.128' \ -o parent=ens32 \ mynet
For at lokale docker prosesser, inkl maskin dette kjører på, skal få lov å “prate sammen” så må man sette opp en link.
ip link add mynet-shim link ens32 type macvlan mode bridge ip addr add 10.0.0.128/32 dev mynet-shim ip link set mynet-shim up ip route add 10.0.0.128/27 dev mynet-shim
Merk at docker-nettverket vil lagres, “set and forget”. Mens linkingene av nettverkene må gjøres for hver gang maskin booter, anbefaler at skrives inn i noe startup-skript.
Etter dette så er det å ta det i bruk, spesifiser gjerne IP for å være nøye;
docker run --name mysql -e MYSQL_ROOT_PASSWORD='Hemmlig2019' --network=mynet --ip=10.0.0.129 -d mariadb
Om du er noe usikker på hva som skjedd, så docker network inspect mynet, docker inspect mysql eller hva du kjører, så finner du fort ut av det : )