concourse / concourse/docker-image-resource

dockerd crashes on Ubuntu 26.04 host

Open
#388 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Go
Stars
162
Forks
250
PR merge metrics
No merged PRs in 30d

Description

Describe the bug

After upgrading our workers to Ubuntu 26.04, we started seeing the following errors from put steps:

time="2026-08-17T15:54:47.111921319Z" level=info msg="Deleting nftables IPv4 rules" error="exit status 1" output="Error: Could not process rule: No such file or directory\ndelete table ip docker-bridges"
time="2026-08-17T15:54:47.118765493Z" level=info msg="Deleting nftables IPv6 rules" error="exit status 1" output="Error: Could not process rule: No such file or directory\ndelete table ip6 docker-bridges"

...

time="2026-08-17T15:54:48.171794819Z" level=info msg="Daemon shutdown complete" error="failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to register \"bridge\" driver: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.8.13 (legacy): can't initialize iptables table `nat': Table does not exist (do you need to insmod?)\nPerhaps iptables or your kernel needs to be upgraded.\n (exit status 3)"
failed to start daemon: Error initializing network controller: error obtaining controller instance: failed to register "bridge" driver: failed to create NAT chain DOCKER: iptables failed: iptables --wait -t nat -N DOCKER: iptables v1.8.13 (legacy): can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
 (exit status 3)
Reproduction steps
  1. Upgrade worker(s) to Ubuntu 26.04
  2. Attempt a put step to this resource
Expected behavior

dockerd starts up and creates the necessary firewall rules using either nft or iptables-nft wrapper.

Additional context

The errors are no doubt linked to the fact that since version 6.17 of the linux kernel, CONFIG_NETFILTER_XTABLES_LEGACY defaults to disabled. Ubuntu 26.04 is using version 7.0.

The wolfi-base image still has the iptables command symlinked to /usr/bin/xtables-legacy-multi, rather than /usr/bin/xtables-nft-multi. Replacing that was enough to progress further when hijacked into the container. I'll follow up with an upstream issue for them to update the symlink.

I also progressed further with the --firewall-backend nftables argument to dockerd, perhaps a generic daemon_args parameter could be added to support this?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure on an Ubuntu 26.04 worker with the wolfi-base image and inspect how dockerd is started for a put step. Compare the legacy iptables symlink with the nftables options described in the issue. Done means dockerd starts and creates the required firewall rules through nft or the iptables-nft wrapper.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, go, linux, ubuntu
Domain
devops, infrastructure, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.