Wednesday 8 June 2022

Create a Macvlan Docker Container Network


Create a Macvlan network in bridge mode

 sudo docker network create -d macvlan --subnet=172.16.86.0/24 --gateway=172.16.86.1 -o parent=docker0 macvlan-net

db9f55c3fc21f3161c82fd86799ddae8005e1d8425aaf918566c23b489fd3ec7


 sudo docker network ls

NETWORK ID     NAME          DRIVER    SCOPE

58866427dd61   bridge        bridge    local

f588c89e342e   host          host      local

db9f55c3fc21   macvlan-net   macvlan   local

40e61f80d7dd   none          null      local


 sudo docker network inspect macvlan-net

[

    {

        "Name": "macvlan-net",

        "Id": "db9f55c3fc21f3161c82fd86799ddae8005e1d8425aaf918566c23b489fd3ec7",

        "Created": "2022-06-08T07:25:42.674325089-07:00",

        "Scope": "local",

        "Driver": "macvlan",

        "EnableIPv6": false,

        "IPAM": {

            "Driver": "default",

            "Options": {},

            "Config": [

                {

                    "Subnet": "172.16.86.0/24",

                    "Gateway": "172.16.86.1"

                }

            ]

        },

        "Internal": false,

        "Attachable": false,

        "Ingress": false,

        "ConfigFrom": {

            "Network": ""

        },

        "ConfigOnly": false,

        "Containers": {},

        "Options": {

            "parent": "docker0"

        },

        "Labels": {}

    }

]


sudo docker network inspect macvlan-net | grep macvlan

        "Name": "macvlan-net",

        "Driver": "macvlan",


Create an Alpine container and attach it to the Macvlan network


 sudo docker run --rm -dit --network macvlan-net --name macvlan-alpine alpine:latest ash

Unable to find image 'alpine:latest' locally

latest: Pulling from library/alpine

2408cc74d12b: Pull complete

Digest: sha256:686d8c9dfa6f3ccfc8230bc3178d23f84eeaf7e457f36f271ab1acc53015037c

Status: Downloaded newer image for alpine:latest

4611a4a533050dc120ad4436cda8e4034adaf7254c8c5c1bfa4dcf80acd0732b


 sudo docker ps

CONTAINER ID   IMAGE           COMMAND   CREATED          STATUS          PORTS     NAMES

4611a4a53305   alpine:latest   "ash"     25 seconds ago   Up 23 seconds             macvlan-alpine


sudo docker container inspect macvlan-alpine

[

    {

        "Id": "4611a4a533050dc120ad4436cda8e4034adaf7254c8c5c1bfa4dcf80acd0732b",

        "Created": "2022-06-08T14:27:30.766611351Z",

        "Path": "ash",

  <...>

            "Networks": {

                "macvlan-net": {

                    "IPAMConfig": null,

                    "Links": null,

                    "Aliases": [

                        "4611a4a53305"

                    ],

                    "NetworkID": "db9f55c3fc21f3161c82fd86799ddae8005e1d8425aaf918566c23b489fd3ec7",

                    "EndpointID": "b417ea33f277c54bbfadd8c92b92a3dd11a6503ad9a6b2e3b831d4389f828a37",

                    "Gateway": "172.16.86.1",

                    "IPAddress": "172.16.86.2",

                    "IPPrefixLen": 24,

                    "IPv6Gateway": "",

                    "GlobalIPv6Address": "",

                    "GlobalIPv6PrefixLen": 0,

                    "MacAddress": "02:42:ac:10:56:02",

                    "DriverOpts": null

<...>

]


sudo docker exec macvlan-alpine ip route

default via 172.16.86.1 dev eth0

172.16.86.0/24 dev eth0 scope link  src 172.16.86.2



docs.docker.com


No comments:

Post a Comment