Docker di Raspbian?

24

Bagaimana saya menjalankan Docker ( https://www.docker.io ) di Raspbian?

Instruksi yang saya temukan adalah proses yang sangat manual berdasarkan Raspbian tetapi dengan kernel yang sangat tua yang tampaknya membutuhkan banyak tambalan. Ada juga build yang terkenal oleh orang-orang resin.io, tetapi secara khusus dibuat untuk Arch Linux.

Kernel Raspbian saat ini adalah 3.10.25 yang cukup modern untuk memiliki sebagian besar barang yang dibutuhkan Docker. Saya tidak sedang membangun kernel baru, tetapi apakah itu masih perlu?

Adakah yang tahu cara mendapatkan Docker dan persyaratannya terjadi pada Pi?

Martijn Heemels
sumber
Pertanyaan menarik. Saya juga akan tertarik pada jawaban untuk ini. Sudahkah Anda mencoba instruksi itu?
Jivings
1
Tidak, saya sudah membaca semua yang bisa saya temukan. Saya secara khusus ingin menggunakan Raspbian sehingga instruksi Arch tidak terlalu berguna. Instruksi Raspbian oleh Ken Cochrane tampaknya sangat tua, membutuhkan banyak langkah untuk mendapatkan Raspbian terbaru, apalagi Docker, dan bahkan tidak menghasilkan pengaturan yang berfungsi. Saya berharap untuk mengumpulkan beberapa informasi sebelum menghabiskan banyak waktu di dalamnya.
Martijn Heemels
1
Satu hal yang saya sadari adalah bahwa wadah Docker tidak benar-benar lintas arsitektur. Karena container berbagi kernel dengan host-OS, aplikasi di dalam container terikat dengan arsitektur armv6. Anda tidak dapat membuat gambar buruh pelabuhan di x86 dan menjalankannya di armv6, yang membatasi sistem build Anda. Ada gambar dasar yang tersedia di sini: index.docker.io/u/resin/rpi-raspbian
Martijn Heemels
Jadi mungkin tetapi tidak melakukan apa yang Anda inginkan?
Jivings
1
Yah sepertinya klaim mereka self-sufficient container that will run virtually anywheregagal. Kedengarannya seperti itu untuk dijalankan pada sesuatu, buruh pelabuhan harus kompatibel dengan perangkat yang berjalan. Kedengarannya seperti Monoatau Javamana yang lebih menjanjikan, tetapi tidak benar-benar apa yang Anda butuhkan. Mengapa Anda membutuhkan ini pada Pi dengan cara apa pun? Jika Anda mengembangkan untuk Linux, Anda harus benar-benar mengembangkan apa yang didukungnya secara asli.
Piotr Kula

Jawaban:

14

Ya, saya telah membangun sebuah kernel dan mem-porting Docker 1.0 ke Raspbian OS: Linux raspberrypi 3.10.37+ # 1 PREEMPT Sat 19 Apr 13:28:05 UTC 2014 armv6l GNU / Linux

Saya telah membagikan hasil saya di GitHub untuk menyelamatkan orang lain dari rasa sakit. Seperti biasa saya telah memberikan 'apa adanya' tanpa jaminan ;-)

Anda dapat menemukan file tar kernel & docker di sini:

https://github.com/stevef1uk/docker_for_rpi

Seahope
sumber
1
Itu sangat menarik. Terima kasih telah berbagi. Maukah Anda menambahkan langkah-langkah untuk mengkompilasi kernel? Khususnya, opsi apa yang Anda ubah di konfigurasi? Saya akan mencoba membangun kernel saya sendiri melalui langkah-langkah yang tercantum di elinux.org/RPi_Kernel_Compilation .
Martijn Heemels
3
Sebenarnya, saya sudah melakukan itu serta cara melakukan cross compile. Anda dapat menemukan blog saya di sini: stevef1uk.blogspot.com/2014/06 / ...
Seahope
7

Anda juga dapat menggunakan HypriotOS, yang menyediakan Docker dan kernel Linux terbaru untuk Raspberry Pi. Cukup flash gambar dan lihat Docker berdiri dan berjalan!

http://blog.hypriot.com/

(pengungkapan: Saya adalah anggota tim Hypriot)

Mathias Renner
sumber
Terima kasih, menggunakan gambar baru Anda di Pi2 baru saya. Bagus sekali! Saya sudah mencobanya dengan berbagai gambar armhf dari Docker Hub.
Martijn Heemels
1
@MathiasRenner adakah alasan hypriot bukan open source? Apakah Anda berencana untuk menghasilkan uang pada gambar?
jottr
1
@jottr Terima kasih atas minat Anda! Sebenarnya, segala sesuatu dari Hypriot yang Anda butuhkan untuk menjalankan Docker di RPI adalah open source. Anda memerlukan (1) kernel yang tepat (github.com/hypriot/rpi-kernel-builder) dan (2) biner Docker (github.com/hypriot/rpi-docker-builder). Cukup buat dan instal keduanya dan Anda siap berangkat!
Mathias Renner
@MathiasRenner ah hebat! Terima kasih untuk petunjuknya.
jottr
Ini juga bekerja dengan baik pada Raspbian Jessie; blog.hypriot.com/post/your-number-one-source-for-docker-on-arm
Arjan
3

Jika Anda menggunakan Raspbian:

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

Docker sekarang dalam repositori default,

Pembaruan : sayangnya versi ini sudah cukup lama, jadi menarik gambar dari Docker Hub tidak akan berfungsi saat ini.

Janghou
sumber
Versi dalam repo default sudah sangat lama, 1.3.3 pada komentar ini. Ini tidak lagi berfungsi dengan register buruh pelabuhan sehingga sebagian besar tidak berguna.
DriverDan
Sepakat. Mudah-mudahan paket dalam Raspbian akan segera diperbarui, mungkin permintaan bug / fitur akan membantu
Janghou
Ada 1.8.3 (Oktober 2015) di repositori pengujian Raspbian.
nphx
Lihat blog.hypriot.com/post/your-number-one-source-for-docker-on-arm for Docker 1.10 tentang Raspbian Jessie.
Arjan
3

Docker mendukung ARMv6 / v7 dan bahkan ARM64 (v8?), Sehingga Anda dapat menjalankannya di Raspberry Pis Anda.

Ikuti instruksi resmi dari Docker di sini: https://docs.docker.com/engine/installation/linux/docker-ce/debian/

Jika Anda memiliki Raspbian Jessie atau Stretch (lihat dokumentasi di atas untuk orang lain), ini akan menjadi:

$ 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

Anda kemudian dapat mengujinya (terima kasih atas dukungan Multiarch Docker):

$ sudo docker run --rm hello-world

Untuk menghindari mengetik sudountuk setiap permintaan Docker, Anda dapat melakukan langkah-langkah tambahan berikut: https://docs.docker.com/engine/installation/linux/linux-postinstall/

Nikmati!

PS: Saya sudah menginstal Ubuntu Server 16.04 untuk armhf. Saya kemudian mengikuti petunjuk ini (untuk Ubuntu) untuk menginstal Docker di atasnya: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository . Itu bekerja seperti pesona juga.

Huygens
sumber
2

Saya selalu menggunakan ...

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

Namun, saya baru saja melihat pemberitahuan penghentian pagi ini ...

WARNING: raspbian is no longer updated @ https://get.docker.com/
         Installing the legacy docker-engine package...
Zak
sumber
Saya hanya memperhatikan ini juga - apakah Anda tahu artinya? apa akibat dari hal ini?
davidA
Itu berarti itu berfungsi hari ini, tetapi mungkin tidak akan berhasil besok. Ini juga berarti Anda harus menulis ke proyek moby (yaitu orang-orang yang menjaga buruh pelabuhan), memberi tahu mereka betapa hebatnya itu dan memohon kepada mereka untuk tetap mempertahankannya. : D
Zak
Apakah Anda tahu jika ada alternatif? Mungkin saya selalu bisa kembali ke proses instalasi manual pada Raspbian?
davidA
Tidak saya tidak tahu. Namun, Proyek Moby harus dapat menjawab pertanyaan itu.
Zak
Terima kasih, saya menjangkau. Aku benci melihat Docker menghilang dari raspbian - menjalankan layanan microser via Docker di RPi luar biasa ...
davidA