Docker trên Raspbian?


24

Làm cách nào để chạy Docker ( https://www.docker.io ) trên Raspbian?

Các hướng dẫn tôi đã tìm thấy là một quy trình rất thủ công dựa trên Raspbian nhưng với một hạt nhân rất cũ dường như đòi hỏi một loạt các bản vá. Ngoài ra còn có bản dựng nổi tiếng của folks resin.io, nhưng nó được sản xuất riêng cho Arch Linux.

Hạt nhân Raspbian hiện tại là 3.10.25, đủ hiện đại để có hầu hết những thứ mà Docker cần. Tôi không ở trên việc xây dựng một kernel mới, nhưng điều đó vẫn cần thiết phải không?

Có ai đã tìm ra làm thế nào để có được Docker và các yêu cầu của nó trên Pi?


Câu hỏi thú vị. Tôi cũng sẽ quan tâm đến một câu trả lời cho điều này. Bạn đã thử những hướng dẫn đó chưa?
Jivings

1
Không, tôi đã đọc tất cả những gì tôi có thể tìm thấy. Tôi đặc biệt mong muốn sử dụng Raspbian vì vậy hướng dẫn Arch không hữu ích lắm. Các hướng dẫn Raspbian của Ken Cochrane có vẻ rất cũ, đòi hỏi nhiều bước để thậm chí cập nhật Raspbian, hãy để Docker và thậm chí không dẫn đến thiết lập hoạt động. Tôi đã hy vọng thu thập một số thông tin trước khi dành rất nhiều thời gian cho nó.
Martijn Heemels

1
Một điều này tôi đã nhận ra là các container Docker không thực sự có kiến ​​trúc chéo. Do các container chia sẻ kernel với HĐH máy chủ, nên các ứng dụng bên trong các container được liên kết với kiến ​​trúc armv6. Bạn không thể xây dựng hình ảnh docker trên x86 và chạy nó trên armv6, điều này đặt ra giới hạn cho hệ thống xây dựng của bạn. Có một hình ảnh cơ sở có sẵn ở đây: index.docker.io/u/resin/rpi-raspbian
Martijn Heemels

Vì vậy, nó có thể nhưng không làm những gì bạn muốn?
Jivings

1
Vâng, có vẻ như yêu cầu của họ self-sufficient container that will run virtually anywheređang giảm. Có vẻ như để nó chạy trên một cái gì đó, docker cần phải tương thích với thiết bị mà nó đang chạy. Nghe có vẻ như Monohoặc Javacó triển vọng hơn, nhưng không thực sự là những gì bạn cần. Tại sao bạn cần điều này trên Pi bất kỳ cách nào? Nếu bạn phát triển cho Linux, bạn nên thực sự phát triển những gì nó hỗ trợ nguyên bản.
Piotr Kula

Câu trả lời:


14

Có, tôi đã xây dựng kernel và chuyển Docker 1.0 sang HĐH Raspbian: Linux raspberrypi 3.10.37+ # 1 PREEMPT Sat ngày 19 tháng 4 13:28:05 UTC 2014 armv6l GNU / Linux

Tôi đã chia sẻ kết quả đầu ra của mình trên GitHub để cứu người khác khỏi nỗi đau. Như thường lệ, tôi đã cung cấp 'nguyên trạng' này không có bảo hành ;-)

Bạn có thể tìm thấy tập tin tar kernel & docker tại đây:

https://github.com/stevef1uk/docker_for_rpi


1
Thật là thú vị. Cám ơn vì đã chia sẻ. Bạn có phiền khi thêm các bước để biên dịch kernel không? Đặc biệt, bạn đã thay đổi tùy chọn nào trong cấu hình? Tôi sắp thử xây dựng kernel của riêng mình thông qua các bước được liệt kê trên elinux.org/RPi_Kernel_Compilation .
Martijn Heemels

3
Trên thực tế, tôi đã làm điều đó cũng như làm thế nào để biên dịch chéo. Bạn có thể tìm thấy blog của tôi ở đây: stevef1uk.blogspot.com/2014/06/ trên & stevef1uk.blogspot.com/2014/06/ Kẻ
Seahope

7

Bạn cũng có thể sử dụng HypriotOS, cung cấp nhân Docker và Linux mới nhất cho Raspberry Pi. Chỉ cần flash hình ảnh và thấy Docker lên và chạy!

http://blog.hypriot.com /

(tiết lộ: Tôi là thành viên nhóm của Hypriot)


Cảm ơn, sử dụng hình ảnh mới của bạn trên Pi2 mới của tôi. Hoạt động tuyệt vời! Tôi đã thử nó với nhiều hình ảnh armhf từ Docker Hub.
Martijn Heemels

1
@MathiasRenner có lý do gì hypriot không phải là nguồn mở? Bạn đang có kế hoạch kiếm tiền từ hình ảnh?
jottr

1
@jottr Cảm ơn bạn đã quan tâm! Trên thực tế, mọi thứ từ Hypriot bạn cần để chạy Docker trên RPI đều được mở nguồn. Bạn cần (1) một hạt nhân thích hợp (github.com/hypriot/rpi-kernel-builder) và (2) nhị phân Docker (github.com/hypriot/rpi-docker-builder). Chỉ cần xây dựng và cài đặt cả hai và bạn đã sẵn sàng để đi!
Mathias Renner

@MathiasRenner ah tuyệt vời! Thx cho con trỏ.
jottr

Điều này cũng hoạt động độc đáo trên Raspbian Jessie; blog.hypriot.com/post/your-number-one-source-for-docker-on-arm
Arjan

3

Nếu bạn sử dụng Raspbian:

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

Docker hiện đang ở trong kho lưu trữ mặc định,

Cập nhật : không may là phiên bản này khá cũ, do đó, việc lấy hình ảnh từ Docker Hub sẽ không hoạt động vào lúc này.


Phiên bản trong repo mặc định là siêu cũ, 1.3.3 như nhận xét này. Nó không còn hoạt động với đăng ký docker làm cho nó hầu như vô dụng.
Tài xếDan

Đã đồng ý. Hy vọng rằng gói trong Raspbian sẽ sớm được cập nhật, có thể một yêu cầu lỗi / tính năng sẽ có ích
Janghou

Có 1.8.3 (tháng 10 năm 2015) trong kho thử nghiệm Raspbian.
nphx

Xem blog.hypriot.com/post/your-number-one-source-for-docker-on-arm cho Docker 1.10 trên Raspbian Jessie.
Arjan

3

Docker hỗ trợ ARMv6 / v7 và thậm chí ARM64 (v8?), Vì vậy bạn có thể chạy nó trên Raspberry Pis.

Thực hiện theo các hướng dẫn chính thức từ Docker tại đây: https://docs.docker.com/engine/installation/linux/docker-ce/debian/

Nếu bạn có Raspbian Jessie hoặc Stretch (kiểm tra tài liệu trên cho người khác), đây sẽ là:

$ 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

Sau đó, bạn có thể kiểm tra nó (nhờ hỗ trợ Docker multiarch):

$ sudo docker run --rm hello-world

Để tránh nhập sudocho mọi lệnh gọi Docker, bạn có thể thực hiện các bước bổ sung sau: https://docs.docker.com/engine/installation/linux/linux-postinstall/

Thưởng thức!

PS: Tôi đã cài đặt Ubuntu Server 16.04 cho armhf. Sau đó, tôi đã làm theo các hướng dẫn này (dành cho Ubuntu) để cài đặt Docker trên nó: https://docs.docker.com/engine/installation/linux/docker-ce/ubfox/#set-up-the-reposeective . Nó hoạt động như một sự quyến rũ là tốt.


2

Tôi đã luôn luôn sử dụng ...

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

Tuy nhiên, tôi vừa thấy một thông báo phản đối sáng nay ...

WARNING: raspbian is no longer updated @ https://get.docker.com/
         Installing the legacy docker-engine package...

Tôi cũng nhận thấy điều này - bạn có biết nó có nghĩa gì không? ý nghĩa của điều này là gì?
davidA

Nó có nghĩa là nó hoạt động ngày hôm nay, nhưng nó có thể sẽ không hoạt động vào ngày mai. Điều đó cũng có nghĩa là bạn nên viết thư cho dự án moby (tức là những người duy trì docker), nói với họ rằng nó tuyệt vời như thế nào và cầu xin họ hãy tiếp tục duy trì nó. : D
Zak

Bạn có biết nếu có một sự thay thế? Có lẽ tôi luôn có thể quay lại quá trình cài đặt thủ công trên Raspbian?
davidA

Không, tôi không biết. Tuy nhiên, Dự án Moby sẽ có thể trả lời câu hỏi đó.
Zak

Cảm ơn, tôi đang tiếp cận. Tôi ghét thấy Docker biến mất khỏi raspbian - chạy microservice qua Docker trên RPi thật tuyệt vời ...
davidA
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.