Skip to content

Problem using DockerCAN in Docker 29 #51522

Description

@AlbinTheander

Description

I'm maintaining a docker network plugin called DockerCAN, used to create CAN networks. In Docker v29, there is problems when using it together with a normal bridged network.

The error I get is in the form:

docker: Error response from daemon: failed to set up container networking: updating external connectivity for IPv4 endpoint 11d837533a2d: driver failed programming external connectivity on endpoint gateway_c1b3df5e1679 (11d837533a2d6aa83bf1f38f8e76c3dff2e213f1a237c46a14901a153e6f202e): endpoint not found: 11d837533a2d6aa83bf1f38f8e76c3dff2e213f1a237c46a14901a153e6f202e

This error message is referring to the bridged network, not the CAN network. The DockerCAN plugin doesn't generate any errors or anything suspicious and receives the callbacks as expected.

The CAN networks are not using IP at all, neither v4 nor v6.

Some notes:

  • It only happens when I use both an ip-based network together with one or more CAN networks. Just CAN or just bridge works fine.
  • I've tried it on both x86 and arm architectures.
  • It works fine in Docker v28.
  • The error happens often, but not always.
  • If I create the container first and assign the networks one by one, it seems to work.
  • The instructions run alpine, but I've tried it with other images as well.

Reproduce

There is a repo with instructions here: https://github.com/remotivelabs/docker_bug_repro. But I'll add them here as well:

Install the DockerCAN plugin, only available for Linux

First install can-utils.

sudo apt install can-utils

Download the latest version of DockerCAN from https://releases.remotivelabs.com/#docker_can/

mkdir dockercan
tar xvf dockercan-VERSION.tar.gz -C dockercan
cd dockercan
make
cd ..
rm -rf dockercan

Now we can run things:

  1. Create the bridge network: docker network create my_net
  2. Create the CAN network: docker network create --ipv6=false --ipv4=false --driver=docker_can --opt vxcan.dev=mycan0 --opt vxcan.peer=mycan0 my_can
  3. Run the container with the networks: docker run --name alpine --network my_net --network my_can --tty alpine echo hello

Expected behavior

Bringing the container up should work without errors.

docker version

Client: Docker Engine - Community
 Version:           29.0.0
 API version:       1.52
 Go version:        go1.25.4
 Git commit:        3d4129b
 Built:             Mon Nov 10 21:47:17 2025
 OS/Arch:           linux/arm64
 Context:           default

Server: Docker Engine - Community
 Engine:
  Version:          29.0.0
  API version:      1.52 (minimum version 1.44)
  Go version:       go1.25.4
  Git commit:       d105562
  Built:            Mon Nov 10 21:47:17 2025
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          v2.1.5
  GitCommit:        fcd43222d6b07379a4be9786bda52438f0dd16a1
 runc:
  Version:          1.3.3
  GitCommit:        v1.3.3-0-gd842d771
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client: Docker Engine - Community
 Version:    29.0.0
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.29.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.40.3
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 36
 Server Version: 29.0.0
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge docker_can host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 CDI spec directories:
  /etc/cdi
  /var/run/cdi
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: fcd43222d6b07379a4be9786bda52438f0dd16a1
 runc version: v1.3.3-0-gd842d771
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 6.8.0-85-generic
 Operating System: Ubuntu 24.04.1 LTS
 OSType: linux
 Architecture: aarch64
 CPUs: 2
 Total Memory: 3.814GiB
 Name: remotive
 ID: c50f49f1-ab3a-41a3-8442-191735ac2eaa
 Docker Root Dir: /var/lib/docker
 Debug Mode: true
  File Descriptors: 25
  Goroutines: 48
  System Time: 2025-11-14T10:17:06.510963564Z
  EventsListeners: 0
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
  ::1/128
 Live Restore Enabled: false
 Default Address Pools:
   Base: 172.16.0.0/12, Size: 20
   Base: 192.168.0.0/16, Size: 24
 Firewall Backend: iptables

Additional Info

No response

Metadata

Metadata

Assignees

Labels

area/networkingNetworkingkind/bugBugs are bugs. The cause may or may not be known at triage time so debugging may be needed.version/29.0

Type

No fields configured for Bug.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions