Docker pull fails - failed to register layer: operation not supported

I may have enabled wrong flags then, did you edit the config file manually or thru make menuconfig?

Either way, maybe you could create the PR and ask for feedback on it?

PS. I gave up and formatted partition which is mounted as /opt with xfs. Everything is working just fine now.

Thanks for your hint,
I don't want to do the heavy lifting and look for a quick fix as you mentioned.
Correct me if I am wrong:

  1. install
    xfs-mkfs, kmod-fs-xfs

  2. create a partition, say
    mkfs.xfs /dev/mmcblk0p3

  3. mount it

  4. point the docker storage to it

1 Like

I used the block-mount to create the fstab config file and then edited it to let partition be mounted automatically on boot.

That's easier! Thank you! Let me have a try, cheers.

edited: this xfs solution works!

P.S. I am wondering if this is still an issue in the latest Openwrt release. (Since I am working on a Chinese device which only has Immortalwrt support at 23.05.2 link)

Im running into this issue with my raspberry pi 4b on 23.05.3 so it still seems to be a problem in the latest version. I will repartition my storage and try the xfs solution when I can get it figured out.

hi,

this is still not working in 23.05.4 but adding those EXT4 flags above to kernel config does help.

#
# Filesystem ACL and attr support options
#
# CONFIG_USE_FS_ACL_ATTR is not set
CONFIG_KERNEL_FS_POSIX_ACL=y
# CONFIG_KERNEL_BTRFS_FS_POSIX_ACL is not set
CONFIG_KERNEL_EXT4_FS_POSIX_ACL=y
# CONFIG_KERNEL_F2FS_FS_POSIX_ACL is not set
# CONFIG_KERNEL_JFFS2_FS_POSIX_ACL is not set
# CONFIG_KERNEL_TMPFS_POSIX_ACL is not set
# CONFIG_KERNEL_CIFS_ACL is not set
# CONFIG_KERNEL_HFS_FS_POSIX_ACL is not set
# CONFIG_KERNEL_HFSPLUS_FS_POSIX_ACL is not set
# CONFIG_KERNEL_NFS_ACL_SUPPORT is not set
# CONFIG_KERNEL_NFS_V3_ACL_SUPPORT is not set
# CONFIG_KERNEL_NFSD_V2_ACL_SUPPORT is not set
# CONFIG_KERNEL_NFSD_V3_ACL_SUPPORT is not set
# CONFIG_KERNEL_REISER_FS_POSIX_ACL is not set
# CONFIG_KERNEL_XFS_POSIX_ACL is not set
# CONFIG_KERNEL_JFS_POSIX_ACL is not set
# end of Filesystem ACL and attr support options

# CONFIG_KERNEL_DEVMEM is not set
# CONFIG_KERNEL_DEVKMEM is not set
CONFIG_KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_KERNEL_SQUASHFS_XATTR is not set
CONFIG_KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_KERNEL_CC_OPTIMIZE_FOR_SIZE is not set
# CONFIG_KERNEL_AUDIT is not set
# CONFIG_KERNEL_SECURITY is not set
# CONFIG_KERNEL_SECURITY_NETWORK is not set
# CONFIG_KERNEL_SECURITY_SELINUX is not set
CONFIG_KERNEL_EXT4_FS_SECURITY=y
# CONFIG_KERNEL_F2FS_FS_SECURITY is not set
# CONFIG_KERNEL_UBIFS_FS_SECURITY is not set
# CONFIG_KERNEL_JFFS2_FS_SECURITY is not set
CONFIG_KERNEL_WERROR=y
# end of Kernel build options

I have personally verified that enabling two kernel flags solves the problem. If you need a workaround, you can download and use an older version of docker, dockerd, and libnetwork from the 21.02.x repository.

docker_20.10.17-1_x86_64.ipk
dockerd_20.10.17-1_x86_64.ipk
libnetwork_2022-06-02-f6ccccb1-1_x86_64.ipk
1 Like

@odkrys @grrr2 would either one of you want to create a PR with the changes asap (before 24.xx is forked) so we can hopefully get it working on 24.xx?

1 Like

I open a PR https://github.com/openwrt/openwrt/pull/16181

4 Likes

Thanks for creating PR. As I would be very eager to have this merged before 24.xx is forked, maybe tag last committers to docker/docker-compose if PR gets no traction for a while.

The dockerd package has option for this (feeds/packages/utils/dockerd/Config.in), the problem is that it is not enabled by default.

	config DOCKER_STO_EXT4
		bool "Enables support for ext3 or ext4 as the backing filesystem"
		default n
		select KERNEL_EXT4_FS_POSIX_ACL
		select KERNEL_EXT4_FS_SECURITY
1 Like

Did this make it to the latest release 23.05.5?

No, you have to enable it all in yourself build.

Thank you. How would one go about doing that? Any pointers would be greatly appreciated.

build a firmware for your router: (https://openwrt.org/docs/guide-developer/toolchain/use-buildsystem)

mod menuconfig setup for the above changes.