1

我正在设置一个 nvidia jetson nano 来运行 docker 容器。我正在使用我已经在我的 x86_64 Ubuntu 16.04 机器上使用的安装程序,docker 运行顺畅。尽管如此,docker似乎设置正确,但我无法运行它。

我按照http://nvidia.com/jetsonnano-start中的说明刷了 jetson SD 卡,并通过键盘和屏幕设置语言等。之后,我无头并通过 ssh 安装。我使用的命令如下面的清单所示。

# in case apt-get is interrupted, e.g. if board freezes, use: $ sudo dpkg --configure -a

sudo apt-get update && apt-get -y upgrade

# install Docker, from https://docs.docker.com/install/linux/docker-ce/ubuntu/
sudo apt install -y \
     git \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common

# Get the Docker signing key for packages
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -

# Add the Docker official repos
echo "deb [arch=arm64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
     $(lsb_release -cs) stable" | \
    sudo tee /etc/apt/sources.list.d/docker.list

# Install Docker
sudo apt update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# starting Docker and enabling it at boot
sudo systemctl enable docker
sudo systemctl start docker

# ad user to docker group, so docker commands can be executed without sudo
sudo gpasswd -a $USER docker
newgrp docker

# install docker-compose
sudo apt-get install -y python-pip python-dev libffi6 libffi-dev libssl-dev libxml2-dev libxslt1-dev libjpeg8-dev zlib1g-dev
sudo -H pip install docker-compose

安装后,我可以看到

$ docker --version
Docker version 19.03.2, build 6a30dfc

但是,在执行某些操作时,出现 exec 格式错误

$ docker run jupyter/minimal-notebook
standard_init_linux.go:211: exec user process caused "exec format error"

Docker 确实会拉取图像。在 Dockerfiles 中,该WORKDIR命令有效,但RUN命令产生相同的“执行格式错误”。

非常感谢任何有关如何无错误运行的帮助或提示

4

2 回答 2

3

问题是 jetson nano 的架构是 aarch64(64 位 ARM)。没有为此而构建的 Anaconda,但存在一个名为 Archiconda 的项目,可以填补这一空白。

请参阅: https ://devtalk.nvidia.com/default/topic/1051415/jetson-nano/anaconda-for-jetson-nano/

对于 Jetson Nano 上来自 Docker 的 jupyter 笔记本,它帮助我遵循了这个 Dockerfile(来自上面的链接): https ://github.com/helmuthva/jetson/blob/master/workflow/deploy/ml-base/ src/Dockerfile

于 2019-10-15T12:36:56.030 回答
0

Docker 不是一个完整的虚拟机。为 x86_64 构建的程序不会在不兼容的处理器上运行。您需要构建和使用 Docker 的 aarch64 版本,这可能需要从源代码构建。

许多重要的 Python 包都包含可能不兼容的 C/C++ 内核,但 Python 在安装期间会编译它们。

于 2020-03-14T11:31:22.863 回答