Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linuxkit in Docker desktop is missing kernel modules SQUASHFS and support for SQUASHFS_XZ Filesystem #7260

Open
srtimsina opened this issue Apr 20, 2024 · 4 comments

Comments

@srtimsina
Copy link

srtimsina commented Apr 20, 2024

Description

Docker desktop for mac starting Docker version 4.26.0 is missing kernel modules SQUASHFS and support for
SQUASHFS_XZ Filesystem, However in the release of Docker desktop, 4.27.0 they have added the kernel module SQUASHFS, however they have still missing support for SQUASHFS_XZ Filesystem, the issue is still persisting in the latest version of Docker Desktop 4.29.0.

In Docker desktop 4.25.2, where linuxkit kernel version (6.4.16-linuxkit), they have support for it.
`
root@28d045845798:/home/ubuntu# zcat /proc/config.gz | grep -i squashfs
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FILE_CACHE=y

CONFIG_SQUASHFS_FILE_DIRECT is not set

CONFIG_SQUASHFS_DECOMP_SINGLE=y

CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set

CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y

CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set

CONFIG_SQUASHFS_EMBEDDED is not set

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3`

But in Docker desktop 4.26.0 where linuxkit kernel version 6.5.11-linuxkit, they have removed the SQUASHFS.

`root@0d8c9499fb3b:/home/ubuntu# zcat /proc/config.gz | grep -i squashfs

CONFIG_SQUASHFS is not set`

In Docker desktop 4.27.0, where the linuxkit kernel version 6.6.12-linuxkit, they have re-added SQUASHFS, but they have still miss the support for XZ filesystem.

`ubuntu@fe1e2ba98d8f:~$ zcat /proc/config.gz | grep -i SQUASHFS
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FILE_CACHE=y

CONFIG_SQUASHFS_FILE_DIRECT is not set

CONFIG_SQUASHFS_DECOMP_SINGLE=y

CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set

CONFIG_SQUASHFS_XATTR is not set

CONFIG_SQUASHFS_ZLIB=y

CONFIG_SQUASHFS_LZ4 is not set

CONFIG_SQUASHFS_LZO is not set

CONFIG_SQUASHFS_XZ is not set

CONFIG_SQUASHFS_ZSTD is not set

CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set

CONFIG_SQUASHFS_EMBEDDED is not set

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
`

The same behavior is seen in the latest Docker desktop version 4.29.0 with linuxkit kernel 6.6.22-linuxkit.

Are they going to add this module in future release?

Reproduce

Run any Ubuntu container in Docker Desktop for mac, 4.26.0 and later.
Execute the following command.
zcat /proc/config.gz | grep -i squashfs

Only the below is seen where most of the modules are not enabled.
`ubuntu@fe1e2ba98d8f:~$ zcat /proc/config.gz | grep -i SQUASHFS
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FILE_CACHE=y

CONFIG_SQUASHFS_FILE_DIRECT is not set

CONFIG_SQUASHFS_DECOMP_SINGLE=y

CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set

CONFIG_SQUASHFS_XATTR is not set

CONFIG_SQUASHFS_ZLIB=y

CONFIG_SQUASHFS_LZ4 is not set

CONFIG_SQUASHFS_LZO is not set

CONFIG_SQUASHFS_XZ is not set

CONFIG_SQUASHFS_ZSTD is not set

CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set

CONFIG_SQUASHFS_EMBEDDED is not set

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3`

Expected behavior

Support for CONFIG_SQUASHFS_XZ must be enabled. Below is the output in Docker desktop version 4.25.2

`root@28d045845798:/home/ubuntu# zcat /proc/config.gz | grep -i squashfs
CONFIG_SQUASHFS=y
CONFIG_SQUASHFS_FILE_CACHE=y

CONFIG_SQUASHFS_FILE_DIRECT is not set

CONFIG_SQUASHFS_DECOMP_SINGLE=y

CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE=y

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set

CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU is not set

CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_ZLIB=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y

CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set

CONFIG_SQUASHFS_EMBEDDED is not set

CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3`

docker version

Latest Docker desktop for Mac OS. v4.29.0

docker info

I am running in the AMD based processor. Below information is after I reverted Docker desktop for Mac to v4.25.2.

srtimsina@NP-STI-MBP-01 artifacts % docker system info
Client:
 Version:    24.0.6
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.2-desktop.5
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.23.0-desktop.1
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-compose
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.20
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-extension
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.9
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-sbom
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-scan
  scout: Docker Scout (Docker Inc.)
    Version:  v1.0.9
    Path:     /Users/srtimsina/.docker/cli-plugins/docker-scout

Server:
 Containers: 1
  Running: 1
  Paused: 0
  Stopped: 0
 Images: 2
 Server Version: 24.0.6
 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: cgroupfs
 Cgroup Version: 2
 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: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 8165feabfdfe38c65b599c4993d227328c231fca
 runc version: v1.1.8-0-g82f18fe
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.4.16-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: x86_64
 CPUs: 7
 Total Memory: 13.66GiB
 Name: linuxkit-8e5a48dcf4ee
 ID: 523a87de-2c86-4928-8fd4-364644408afc
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: daemon is not using the default seccomp profile

Diagnostics ID

a

Additional Info

Is Docker discontinuing to add this support or this is a bug? How is the long term plan?

@dgageot dgageot added the area/kernel Linux kernel bug label Apr 21, 2024
@dgageot dgageot self-assigned this Apr 21, 2024
@dgageot
Copy link
Member

dgageot commented Apr 22, 2024

@srtimsina Sorry for breaking your workflow! I'll put back that module and make sure we don't remove it in the future!

@dgageot dgageot reopened this Apr 22, 2024
@srtimsina
Copy link
Author

Hi @dgageot , In which release of Docker desktop for Mac can we expect this module included, is this going to be added back in upcoming release?

@dgageot
Copy link
Member

dgageot commented Apr 22, 2024

@srtimsina yes, it should come with 4.30.0

@srtimsina
Copy link
Author

@dgageot , that sounds great. Thank you so much! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants