Докер на Распбиане?

24

Как мне запустить Docker ( https://www.docker.io ) на Raspbian?

Инструкции, которые я нашел, являются либо очень ручным процессом, основанным на Raspbian, но с очень старым ядром, которое, казалось, требовало кучу патчей. Существует также хорошо известная сборка , созданная пользователями смолы.ио, но она специально сделана для Arch Linux.

Текущее ядро ​​Raspbian - это 3.10.25, которое достаточно современно, чтобы иметь большую часть того, что нужно Docker. Я не над сборкой нового ядра, но это все еще необходимо?

Кто-нибудь выяснил, как заставить Docker и его требования работать на Pi?

Мартейн Хеемельс
источник
Интересный вопрос. Я также буду заинтересован в ответе на это. Вы пробовали эти инструкции вообще?
Jivings
1
Нет, я прочитал все, что мог найти. Я специально искал использование Raspbian, поэтому инструкции Arch не были очень полезны. Инструкции Raspbian Кена Кокрейна кажутся очень старыми, требующими множества шагов, чтобы даже обновить Raspbian, не говоря уже о Docker, и даже не привести к рабочей настройке. Я надеялся собрать некоторую информацию, прежде чем потратить кучу времени на это.
Мартейн Химельс
1
Я понял, что контейнеры Docker на самом деле не кросс-архитектурные. Поскольку контейнеры совместно используют ядро ​​с хост-ОС, приложения внутри контейнеров связаны с архитектурой armv6. Вы не можете собрать образ докера на x86 и запустить его на armv6, что накладывает ограничения на вашу систему сборки. Базовое изображение доступно здесь: index.docker.io/u/resin/rpi-raspbian
Мартейн Химельс
Так можно, но не делать то, что ты хочешь?
Jivings
1
Ну, похоже, их претензия self-sufficient container that will run virtually anywhereне дотягивает. Похоже, что он работает на чем-то, докер должен быть совместим с устройством, на котором он работает. Это звучит как Monoили Javaболее перспективно, но не совсем то, что вам нужно. Зачем тебе это нужно на Пи? Если вы разрабатываете для Linux, вы должны действительно развивать то, что он поддерживает изначально.
Петр Кула

Ответы:

14

Да, я собрал ядро ​​и портировал Docker 1.0 на Raspbian OS: Linux raspberrypi 3.10.37+ # 1 PREEMPT Сб 19 апреля 13:28:05 UTC 2014 armv6l GNU / Linux

Я поделился своими результатами на GitHub, чтобы избавить других от боли. Как обычно, я предоставил это «как есть» без каких-либо гарантий ;-)

Вы можете найти tar-файл ядра и докера здесь:

https://github.com/stevef1uk/docker_for_rpi

Seahope
источник
1
Это очень интересно. Спасибо, что поделился. Не могли бы вы добавить шаги для сборки ядра? В частности, какие параметры вы изменили в конфиге? Я собираюсь попробовать собрать свое собственное ядро ​​с помощью шагов, перечисленных на elinux.org/RPi_Kernel_Compilation .
Мартейн Химельс
3
На самом деле, я уже сделал это, а также как кросс-компиляции. Вы можете найти мои блоги здесь: stevef1uk.blogspot.com/2014/06/… & stevef1uk.blogspot.com/2014/06/…
Seahope
7

Вы также можете использовать HypriotOS, которая предоставляет новейшее ядро ​​Docker и Linux для Raspberry Pi. Просто прошейте изображение и посмотрите, как работает Docker!

http://blog.hypriot.com/

(раскрытие: я являюсь членом команды Hypriot)

Матиас Реннер
источник
Спасибо, используя ваше новое изображение на моем новом Pi2. Работает отлично! Я попробовал это с различными изображениями armhf из Docker Hub.
Мартейн Химельс
1
@MathiasRenner, есть ли причина, почему Hypriot не является открытым исходным кодом? Вы планируете монетизировать изображение?
января
1
@jottr Спасибо за ваш интерес! На самом деле, все, от Hypriot, вам нужно запустить Docker на RPI, имеет открытый исходный код. Вам необходимо (1) подходящее ядро ​​(github.com/hypriot/rpi-kernel-builder) и (2) бинарный файл Docker (github.com/hypriot/rpi-docker-builder). Просто соберите и установите оба, и вы готовы к работе!
Матиас Реннер
@MathiasRenner ах здорово! Спасибо за указатели.
Jott
Это также хорошо работает на Распбиана Джесси; blog.hypriot.com/post/your-number-one-source-for-docker-on-arm
Арджан
3

Если вы используете Raspbian:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install docker.io docker

Docker теперь находится в репозитории по умолчанию,

Обновление : к сожалению, эта версия довольно старая, поэтому загрузка изображений из Docker Hub в настоящее время не работает.

Janghou
источник
Версия в репо по умолчанию очень старая, 1.3.3 на момент написания этого комментария. Он больше не работает с реестром докера, что делает его в основном бесполезным.
DriverDan
Согласовано. Надеемся, что пакет в Raspbian будет обновлен в ближайшее время, может быть, запрос об ошибке / функции поможет
Janghou
В репозитории Raspbian есть 1.8.3 (октябрь 2015).
nphx
См. Blog.hypriot.com/post/your-number-one-source-for-docker-on-arm для Docker 1.10 о Распбиане Джесси.
Арджан
3

Docker поддерживает ARMv6 / v7 и даже ARM64 (v8?), Поэтому вы можете запустить его на своем Raspberry Pis.

Следуйте официальным инструкциям Docker здесь: https://docs.docker.com/engine/installation/linux/docker-ce/debian/

Если у вас есть Raspbian Jessie или Stretch (см. Выше документацию для других), это будет:

$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ echo "deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
     $(lsb_release -cs) stable" | \
     sudo tee /etc/apt/sources.list.d/docker.list
$ sudo apt-get update; sudo apt-get install docker-ce
$ sudo systemctl start docker

Затем вы можете протестировать его (благодаря поддержке Docker multiarch):

$ sudo docker run --rm hello-world

Чтобы избежать ввода sudoдля каждого вызова Docker, вы можете выполнить следующие дополнительные шаги: https://docs.docker.com/engine/installation/linux/linux-postinstall/

Наслаждайтесь!

PS: я установил Ubuntu Server 16.04 для armhf. Затем я следовал этим инструкциям (для Ubuntu), чтобы установить на него Docker: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository . Это работает как шарм.

Гюйгенс
источник
2

Я всегда использовал ...

curl -sSL https://get.docker.com | sh && sudo usermod -aG docker pi

Тем не менее, я только что увидел уведомление об устаревании этим утром ...

WARNING: raspbian is no longer updated @ https://get.docker.com/
         Installing the legacy docker-engine package...
Zak
источник
Я тоже это заметил - ты знаешь, что это значит? Каковы последствия этого?
Давида,
Это означает, что это работает сегодня, но, вероятно, не будет работать завтра. Это также означает, что вы должны написать в проект moby (то есть, люди, которые поддерживают докер), сказать им, как это круто, и попросить их продолжать поддерживать его. : D
Зак
Вы знаете, есть ли альтернатива? Предположительно я всегда мог вернуться к процессу ручной установки на Raspbian?
davidA
Нет не знаю Тем не менее, проект Moby должен быть в состоянии ответить на этот вопрос.
Зак
Спасибо, я обращаюсь. Я бы не хотел видеть, как Docker исчезает из распбиана - запуск микросервисов через Docker на RPi потрясающий ...
davidA