Докер на nvidia Jetson Nano не выполняется

Я настраиваю nvidia jetson nano для запуска контейнеров докеров. Я использую процедуру установки, которую я уже использовал на своем компьютере x86_64 Ubuntu 16.04, где докер работает плавно. Тем не менее, кажется, что докер настроен правильно, но я не могу его запустить.

Я прошил SD-карту jetson, как описано в http://nvidia.com/jetsonnano-start, и настройте язык и т. д. с помощью клавиатуры и экрана. После этого я отключился и установил через 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"

Докер вытаскивает образ. А в Dockerfiles команда WORKDIR работает, но команды RUN приводят к той же «ошибке формата exec».

Любая помощь или подсказка о том, как это работать без ошибок, приветствуются.


person Heinrich    schedule 13.09.2019    source источник
comment
docker run hello-world дает ожидаемый результат, как и docker container run alpine echo "Hello World"   -  person Heinrich    schedule 13.09.2019
comment
у меня тоже возникла эта проблема, вы ее исправляете? Благодарность   -  person Cery    schedule 11.10.2019
comment
Тем временем джетсон сломался, и его пришлось заменить. вернемся к этому через неделю или около того ..   -  person Heinrich    schedule 12.10.2019
comment
с новым и работающим jetson nano у меня все еще та же проблема. решения не видно ..   -  person Heinrich    schedule 14.10.2019


Ответы (2)


Проблема в том, что у jetson nano архитектура aarch64 (64-битная ARM). Для этого нет сборки Anaconda, но существует проект под названием Archiconda, который преодолевает этот пробел.

См .: https://devtalk.nvidia.com/default/topic/1051415/jetson-nano/anaconda-for-jetson-nano/

для записной книжки jupyter из Docker на Jetson Nano это помогло мне следовать этому Dockerfile (как по ссылке выше): https://github.com/helmuthva/jetson/blob/master/workflow/deploy/ml-base/src/Dockerfile

person Heinrich    schedule 15.10.2019

Докер - это не полноценная виртуальная машина. Программы, созданные для x86_64, не будут работать на несовместимом процессоре. Вам необходимо собрать и использовать версии Docker для aarch64, для которых может потребоваться сборка из исходного кода.

Многие важные пакеты Python содержат ядро ​​C / C ++, которое также может быть несовместимым, но Python компилирует их во время установки.

person Audrius Meskauskas    schedule 14.03.2020