我正在设置一个nvidia jetson nano来运行docker容器。我正在使用已经在x86_64 Ubuntu 16.04计算机上使用的安装过程,其中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
命令产生相同的“ exec格式错误”。
非常感谢您对此无误运行的任何帮助或提示
答案 0 :(得分:2)
问题在于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
答案 1 :(得分:0)
Docker不是完整的虚拟机。为x86_64构建的程序将无法在不兼容的处理器上运行。您需要构建和使用aarch64版本的Docker,这可能需要从源代码构建。
许多重要的Python程序包都包含可能不兼容的C / C ++内核,但是Python在安装过程中对其进行了编译。