systemd-journald.service:デバイスはIPファイアウォールを構成しますが、ローカルシステムはBPF / cgroupをサポートしません。

systemd-journald.service:デバイスはIPファイアウォールを構成しますが、ローカルシステムはBPF / cgroupをサポートしません。

私はjetson nanoにubuntu 22.04をインストールしました。 Dockerは22.04では動作しませんが、ubuntu 18.04と20.04では動作します。 Ubuntu 18、20、22で同じカーネルバージョンを使用しています。これ:

Linux marietto-nano 4.9.299+ #0 SMP PREEMPT Wed Mar 29 14:22:17 CEST 2023 aarch64 aarch64 aarch64 GNU/Linux

したがって、動作しない場合、それは間違っていません。私はUbuntu 22.04にのみ存在し、Ubuntu 18と20には存在しないいくつかのコンポーネント間には少し非互換性があると思います。エラーは次のとおりです。

# docker images

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
hello-world   latest    46331d942d63   13 months ago   9.14kB

# docker run hello-world

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error setting cgroup config for procHooks process: bpf_prog_query(BPF_CGROUP_DEVICE) failed: function not implemented: unknown.
ERRO[0004] error waiting for container: context canceled

私は何をすべきかわかりません。 Dockerコンテナファイルをアップグレードするためにこのガイドに従いました。

https://www.server-world.info/en/note?os=Ubuntu_22.04&p=nvidia&f=2

だから私がしたことは次のとおりです。

# curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | apt-key add -
OK

# curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu22.04/nvidia-docker.list > /etc/apt/sources.list.d/nvidia-docker.list

# apt upgrade

アップグレードする前に、次のバージョンがありました。

nvidia-docker2/stable,now 2.8.0-1 all
nvidia-container-toolkit/stable,now 1.7.0-1 arm64

後ろに:

nvidia-docker2/bionic 2.13.0-1 all
nvidia-container-toolkit/bionic 1.13.1-1 arm64
nvidia-container-toolkit-base/bionic 1.13.1-1 arm64

アップグレードされていますが、まだパッケージがBionicで提供されていることがわかりますが、jammyのリポジトリを使用しました。

# curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu22.04/nvidia-docker.list > /etc/apt/sources.list.d/nvidia-docker.list

以下は、/etc/docker/daemon.json ファイルの内容です。

{
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

私はJetPack 4.6.3/L4T 32.7.3を使用しています。 Runcのバージョンは次のとおりです。

# runc --version

runc version 1.1.4-0ubuntu1~22.04.1
spec: 1.0.2-dev
go: go1.18.1
libseccomp: 2.5.3

ドッカーのバージョンは次のとおりです。

# docker --version
Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3

とにかく、パッケージをアップグレードした後もエラーは修正されませんでした。

さらなる実験として、Ubuntu 22.04にインストールされたすべてのパッケージをクリアし、Ubuntu 20.04に同じパッケージバージョンをインストールしました。彼らの名前は次のとおりです。

cgroup-tools_0.41-10_arm64.deb
docker.io_20.10.21-0ubuntu1~20.04.1_arm64.deb
containerd_1.6.12-0ubuntu1~20.04.1_arm64.deb
runc_1.1.4-0ubuntu1~20.04.1_arm64.deb

ただし、以前と同じエラーが発生します。

root@marietto-nano:/home/marietto# docker run hello-world

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error setting cgroup config for procHooks process: bpf_prog_query(BPF_CGROUP_DEVICE) failed: function not implemented: unknown.
ERRO[0000] error waiting for container: context canceled 

以下は「check-config.sh」スクリプトの出力です。

root@marietto-nano:/home/marietto/Scaricati# ./check-config.sh

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

Generally Necessary:
- cgroup hierarchy: cgroupv2
  Controllers:
  **- cpu: missing
  - cpuset: missing**
  - io: available
  - memory: available
  - pids: available
- 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

ログに次のエラーが表示されます。

cgroup: cgroup2: unknown option "nsdelegate,memory_recursiveprot"
cgroup: cgroup2: unknown option "nsdelegate"
cgroup: cgroup: disabling cgroup2 socket matching due to net_prio or net_cls activatn

Dockerの修正に何がありましたか?ありがとうございます。

関連情報