
방금 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를 수정하는 데 무엇이 빠졌나요? 감사해요.