Docker i Docker Compose na Raspberry PI

Malinka to potężne urządzenie, które jest w stanie poradzić sobie nawet z uruchomieniem kontenerów dockera. Może zastanawiasz się skąd pomysł na uruchomienie kontenerów dockera na Raspberry PI? Mikrokomputery pokroju Raspberry PI stają się coraz mocniejsze, przez co można je wykorzystywać do wielu rzeczy jednocześnie.

Niejednokrotnie oprogramowanie, które tam instalujemy wymaga specjalnej konfiguracji systemu operacyjnego urządzenia. Może się zatem zdarzyć sytuacja, że wymagania oprogramowania od systemu operacyjnego zaczną być sprzeczne, przez co, mimo wolnych zasobów nie będziemy w stanie uzyskać efektu który chcemy. Z pomocą przychodzą nam kontenery, które mogą w dużym uproszczeniu zapewnić naszej aplikacji konfigurację systemu, jaka jest niezbędna, izolując jednocześnie zasoby i dane aplikacji pomiędzy sobą.

Jak zainstalować Dockera na Raspberry PI?

Instalacja jest banalnie prosta i sprowadza się do wykonania poleceń:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker pi

Następnie należy się wylogować i ponownie zalogować, aby użytkownik „pi” otrzymał odpowiednie uprawnienia.

Teraz możemy sprawdzić czy wszystko przebiegło bez błędów. Spróbujemy uruchomić testowy kontener „hello-world”, w tym celu uruchamiamy polecenie:

docker run hello-world

Jeśli wszystko przebiegło zgodnie z planem powinniśmy zobaczyć:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
2c7ed585684a: Pull complete
Digest: sha256:df5f5184104426b65967e016ff2ac0bfcd44ad7899ca3bbcf8e44e4461491a9e
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm32v7)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Aby serwer dockera był automatycznie uruchamiany wraz ze startem naszej Malinki, warto dodać go do autostartu poleceniem:

sudo systemctl enable docker

Instalacja Docker Compose

Na koniec, warto doinstalować narzędzie Docker Compose, które pozwala na łatwe tworzenie i zarządzanie zestawami kontenerów dockera. Aby to zrobić, należy wykonać polecenia:

sudo apt-get install -y libffi-dev libssl-dev python3 python3-pip
sudo pip3 -v install docker-compose

Podsumowanie

To tyle. Od tej chwili, nasze Raspberry Pi może uruchamiać kontenery dockera.

Ważna uwaga, Raspberry PI jest urządzeniem działającym na architekturze ARM, oznacza to, że nie wszystkie gotowe kontenery dockera będą działały na tej platformie. Aby uruchomić kontener, najpierw należy upewnić się, że jest on dostępny na architekturę ARM.