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에서는 작동합니다. 우분투 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

따라서 작동하지 않는다면 그것은 잘못이 아닙니다. 우분투 22.04에만 존재하고 우분투 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

나는 무엇을 해야할지 모르겠습니다. 도커 컨테이너 파일을 업그레이드하기 위해 이 가이드를 따르기도 했습니다.

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

어쨌든, 패키지를 업그레이드한 후에도 오류가 수정되지 않았습니다.

추가 실험으로 우분투 22.04에 설치된 모든 패키지를 지우고 우분투 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를 수정하는 데 무엇이 빠졌나요? 감사해요.

관련 정보