Does docker support NXP real-time-edge platform?

Hi everyone

I wonder if docker support real-time-edge platform from NXP.
My board is ls1028ardb which use real-time-edge v2.5 and linux kernel is 5.15rt.

if supports and how do I install docker onto the board. Which platform should I choose? ubuntu?

Thanks

Have you tried asking in a NXP community forum? It is more likely that the percentage of users using your platform trying to use docker is bigger, than the percentage of docker users that are trying to run it on the platform you are using.

You can find the supported cpu architectures and distribution here:
https://docs.docker.com/engine/install/#server

Just to point out the obvious: no other cpu architecture / distribution combination, than those that are marked with a green check icon, are supported.

And then there is always the chance that the distribution you are using provides its own docker packages (which in that case are maintained and supported by the support channels of the distribution itself)

Hi @meyay

Thanks for reply. I tried to install docker Engine from binaries. The docker run hello-world fine but has an error. Have you ever seen such error before and how do I fix it?


I
I wonder what is OOM is ? Is it a big deal for docker and can I ignore it?

Thanks

Please do not post text content as screenshots. They can’t be indexed and found by a forum search, or quoted in a response.

The message indicates on which action the error occurred: when adding the cgroup to the out of memory monitor". The relevant part is the error where it indicates that the operation is not supported.

The failed to delete conntrack state for 172.17.0.2 looks kind of worrying.

You can check whether the kernel has all required kernel modules:

wget https://github.com/moby/moby/raw/master/contrib/check-config.sh
chmod +x check-config.sh
./check-config.sh

Can you share the output and the output of docker info.
I have no idea what causes the error, but I hope to see something in the outputs that might spark an idea.

Hi @meyay

The information after run check-config.sh are:

info: reading kernel config from /proc/config.gz ...

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_VETH: enabled
- CONFIG_BRIDGE: enabled
- CONFIG_BRIDGE_NETFILTER: enabled
- CONFIG_IP_NF_FILTER: enabled
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NETFILTER_XT_MATCH_IPVS: missing
- CONFIG_NETFILTER_XT_MARK: enabled
- CONFIG_IP_NF_NAT: enabled
- CONFIG_NF_NAT: enabled
- CONFIG_POSIX_MQUEUE: enabled
- CONFIG_CGROUP_BPF: enabled

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_SECCOMP_FILTER: enabled
- CONFIG_CGROUP_PIDS: enabled
- CONFIG_MEMCG_SWAP: enabled
    (cgroup swap accounting is currently enabled)
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: enabled
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: enabled
- CONFIG_NET_CLS_CGROUP: enabled
- CONFIG_CGROUP_NET_PRIO: enabled
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_IP_NF_TARGET_REDIRECT: missing
- CONFIG_IP_VS: missing
- CONFIG_IP_VS_NFCT: missing
- CONFIG_IP_VS_PROTO_TCP: missing
- CONFIG_IP_VS_PROTO_UDP: missing
- CONFIG_IP_VS_RR: missing
- CONFIG_SECURITY_SELINUX: missing
- CONFIG_SECURITY_APPARMOR: missing
- CONFIG_EXT3_FS: enabled
- CONFIG_EXT3_FS_XATTR: missing
- CONFIG_EXT3_FS_POSIX_ACL: enabled
- CONFIG_EXT3_FS_SECURITY: missing
    (enable these ext3 configs if you are using ext3 as backing filesystem)
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
  - "overlay":
    - CONFIG_VXLAN: missing
    - CONFIG_BRIDGE_VLAN_FILTERING: enabled
      Optional (for encrypted networks):
      - CONFIG_CRYPTO: enabled
      - CONFIG_CRYPTO_AEAD: enabled
      - CONFIG_CRYPTO_GCM: enabled
      - CONFIG_CRYPTO_SEQIV: enabled
      - CONFIG_CRYPTO_GHASH: enabled
      - CONFIG_XFRM: enabled
      - CONFIG_XFRM_USER: enabled
      - CONFIG_XFRM_ALGO: enabled
      - CONFIG_INET_ESP: enabled
      - CONFIG_NETFILTER_XT_MATCH_BPF: missing
  - "ipvlan":
    - CONFIG_IPVLAN: missing
  - "macvlan":
    - CONFIG_MACVLAN: enabled
    - CONFIG_DUMMY: missing
  - "ftp,tftp client in container":
    - CONFIG_NF_NAT_FTP: missing
    - CONFIG_NF_CONNTRACK_FTP: missing
    - CONFIG_NF_NAT_TFTP: missing
    - CONFIG_NF_CONNTRACK_TFTP: missing
- Storage Drivers:
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled
    - CONFIG_BTRFS_FS_POSIX_ACL: enabled
  - "overlay":
    - CONFIG_OVERLAY_FS: enabled
  - "zfs":
    - /dev/zfs: missing
    - zfs command: missing
    - zpool command: missing

Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000

And the output of docker info are:

Client:
 Version:    24.0.0
 Context:    default
 Debug Mode: false

Server:
 Containers: 1
  Running: 0
  Paused: 0
  Stopped: 1
 Images: 1
 Server Version: 24.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: 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: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 1677a17964311325ed1c31e2c0a3589ce6d5c30d
 runc version: v1.1.7-0-g860f061
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
 Kernel Version: 5.15.71-rt51
 Operating System: NXP Real-time Edge Distro 2.2 (hardknott)
 OSType: linux
 Architecture: aarch64
 CPUs: 2
 Total Memory: 1.861GiB
 Name: ls1028ardb
 ID: 4f314065-5054-4355-b0ba-fc5d96f917d4
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false
 Product License: Community Engine

Thanks

Have to start working now, so I won’t be responding the next 10h.

In the meantime: can you update to docker-ce 24.0.2?

I tried but docker-ce 24.0.2 face the same problem.

I wonder can I ignore the OOM problem since the hello-world runs ok?

What OOM problem? Like I wrote earlier, the error message indicates that the cgroup can not be attached to the memory monitor.

This would be a problem, when you use a memory limit for the container, as it wouldn`t be OOM killed. Depending on your usage, this could be a serious problem, or irrelevant.

Your kernel misses CONFIG_NETFILTER_XT_MATCH_IPVS, which is required and some kernel modules required for optional features. I never used docker-ce on an os that is not listed in the support matrix.

I never tried a setup with the binary release. Furthermore, I am afraid you will have to wait for someone that did that and know the challenges.

You should consider posting this question on a NXP forum.

Thank you so much @meyay