私は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の修正に何がありましたか?ありがとうございます。