Welcome to the Linux Foundation Forum!

Lab 8.1 - Page5-7: docker0 interface has no default IPv4 when running nginx

Hello,

While working on the Lab 8.1 page5-7 (ver. LFS253_09.17.2021), I am facing an issue that the docker0 has no default IPv4 address.

$ docker container run -d --name web nginx
206c7ae0a89a19857881a621b9efbefee144a010b340603cbd083ee16affda0f

$ ip a
4: docker0: <BROADCAST,MULTICAST> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:7b:65:0c:89 brd ff:ff:ff:ff:ff:ff

However, from the example on the handouts, it has

When Docker daemon starts, it creates adocker0networkbridge on the host system. By default, all thecontainers connect to thedocker0network bridge.
...
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UPgroup defaultlink/ether 02:42:92:80:94:51 brd ff:ff:ff:ff:ff:ffinet 172.17.0.1/16 brd 172.17.255.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:92ff:fe80:9451/64 scope linkvalid_lft forever preferred_lft forever
...

It seems not a new issue, and workarounds were tried by following https://github.com/moby/moby/issues/40217. But it does not work.

Would someone provide any advice?

Thanks,
Shiyang


Additional Information:
System: Ubuntu 20.04.3 LTS

Output of docker version:

docker version 
Client: Docker Engine - Community
 Version:           20.10.8
 API version:       1.41
 Go version:        go1.16.6
 Git commit:        3967b7d
 Built:             Fri Jul 30 19:54:27 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.8
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.6
  Git commit:       75249d8
  Built:            Fri Jul 30 19:52:33 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.10
  GitCommit:        8848fdb7c4ae3815afcc990a8a99d663dda1b590
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Output of docker info:

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Build with BuildKit (Docker Inc., v0.6.1-docker)
  scan: Docker Scan (Docker Inc., v0.8.0)

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 18
 Server Version: 20.10.8
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 1
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc io.containerd.runc.v2 io.containerd.runtime.v1.linux
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8848fdb7c4ae3815afcc990a8a99d663dda1b590
 runc version: v1.0.2-0-g52b36a2
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: default
 Kernel Version: 5.11.0-38-generic
 Operating System: Ubuntu 20.04.3 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 2
 Total Memory: 3.81GiB
 Name: ubuntu
 ID: PZB2:M7VK:IDTT:BADO:K7OO:L6RU:KZZO:3DJ4:5GRC:FXD6:7SRN:J7UX
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

Best Answer

  • chrispokorni
    chrispokorni Posts: 1,202
    Accepted Answer

    Hi @sli3,

    Following the VM provisioning steps with the course recommended hypervisor (VirtualBox) and the recommended bridged network, and then separately with NAT networking as seen in your environment, both lead to successful default docker0 networks creation with default subnets assigned.

    I would recommend attempting to create a custom docker bridge network, validating its subnet and attach containers to it.

    If the custom bridge creation is not successful, then the VMware Fusion documentation could provide some tips for networking configuration at the hypervisor level that may allow Docker to create its default bridge network on the guest VM.

    If all else fails, using a different hypervisor for VM provisioning may help overcome this step and move forward with the lab exercises.

    Regards,
    -Chris

Answers

  • chrispokorni
    chrispokorni Posts: 1,202

    Hi @sli3,

    Can you share additional details about your system? Is it a native host or a VM? What hypervisor is used, or what cloud infrastructure and what type of cloud instance. VM/Instance size - CPU, MEM, disk. How was docker installed?

    Regards,
    -Chris

  • sli3
    sli3 Posts: 2

    Hi Instructor @chrispokorni,

    Thanks for your response. I use MacBook Pro with MacOS 11.6 (20G165). It was created and hosted in a VM (VMware Fusion 12.1) where the Ubuntu was installed from a 64-bit LTS ISO image that downloaded from its official website (https://ubuntu.com/).

    The Ubuntu VM is allocated:

    • 2 processors
    • 4096 MB Memory
    • 12 GB disk size
    • Network Adapter:

    The docker was installed by following the instructions that provided in LFS253.

    Thanks,
    Shiyang

Categories

Upcoming Training