2022-08-17-07-08-11-instalacja-dockera-na-raspberry-pi-w-15-minut.png

Instalacja dockera na Raspberry Pi w 15 minut

Docker to innowacyjna technologia, która rozwinęła się w krótkim okresie (około dwóch lat) i jest obecnie bardzo poszukiwana w nowoczesnych branżach IT.

Nasz blog może się rozwijać dzięki naszym sponsorom. Nasz kurs dockera powstał dzięki współpracy z chmurami Vultr i tam dokładnie został przetestowany. Nasz szablon pochodzi z Envato MarketPlace. Wszystkie pluginy i elementy stron internetowych, jakie opisujemy, pochodzą z Envato Elements. Wszystkie książki, opisane na tym blogu, są dostepne u wydawcy Helion. Jesteśmy także partnerem Respondent.io, platformy, która płaci za testowanie aplikacji.

Docker w Raspberry Pi to narzędzie do tworzenia, wdrażania i wykonywania aplikacji za pomocą kontenerów. Jest lekki i najefektywniejszy w porównaniu do maszyn wirtualnych. W tym artykule zrozumiemy, jak ta technologia Raspberry Pi jest inna i innowacyjna pod względem innych konkurencyjnych technologii.

Krok 1: Aktualizacja systemu

Na tym etapie kontynuuj aktualizację i aktualizację systemu oraz zainstaluj najbardziej zaawansowaną wersję oprogramowania.

Uruchom to polecenie „sudo apt-get update && sudo apt-get upgrade”, jak pokazano poniżej.

adrian@raspberrypi:~ $ sudo apt upgrade & sudo apt update
[1] 1936
Czytanie list pakietów... Gotowe
Stary:1 http://deb.debian.org/debian bullseye InRelease
Stary:2 http://deb.debian.org/debian bullseye-updates InRelease
Stary:3 http://security.debian.org/debian-security bullseye-security InRelease
Stary:4 http://archive.raspberrypi.org/debian bullseye InRelease
Budowanie drzewa zależności... Gotowe
Odczyt informacji o stanie... Gotowe
Obliczanie aktualizacji... Gotowe
Następujący pakiet został zainstalowany automatycznie i nie jest już więcej wyma                                                                                                             gany:
  libfuse2
Aby go usunąć należy użyć "sudo apt autoremove".
0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych.
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności... Gotowe
Odczyt informacji o stanie... Gotowe
All packages are up to date.
[1]+  Zakończono             sudo apt upgrade
adrian@raspberrypi:~ $

Krok 2: Instalacja dockera

Pobierz odpowiedni skrypt i zainstaluj Docker w środowisku Raspberry Pi.

adrian@raspberrypi:~ $ curl -fsSL https://get.docker.com -o get-docker.sh
Uruchom skrypt za pomocą poniższego polecenia:

adrian@raspberrypi:~ $ sudo sh get-docker.sh
# Executing docker install script, commit: b2e29ef7a9a89840d2333637f7d1900a83e7153f
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c mkdir -p /etc/apt/keyrings && chmod -R 0755 /etc/apt/keyrings
+ sh -c curl -fsSL "https://download.docker.com/linux/debian/gpg" | gpg --dearmor --yes -o /etc/apt/keyrings/docker.gpg
+ sh -c chmod a+r /etc/apt/keyrings/docker.gpg
+ sh -c echo "deb [arch=arm64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bullseye stable" > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends docker-ce docker-ce-cli containerd.io docker-compose-plugin >/dev/null

+ version_gte 20.10
+ [ -z  ]
+ return 0
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq docker-ce-rootless-extras >/dev/null
+ sh -c docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:02:34 2022
 OS/Arch:           linux/arm64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:01 2022
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.7
  GitCommit:        0197261a30bf81f1ee8e6a4dd2dea0ef95d67ccb
 runc:
  Version:          1.1.3
  GitCommit:        v1.1.3-0-g6724737
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

================================================================================

To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:

    dockerd-rootless-setuptool.sh install

Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.


To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/

WARNING: Access to the remote API on a privileged Docker daemon is equivalent
         to root access on the host. Refer to the 'Docker daemon attack surface'
         documentation for details: https://docs.docker.com/go/attack-surface/

================================================================================

adrian@raspberrypi:~ $

Spowoduje to ustanowienie oczekiwanych pakietów w środowisku administracyjnym Raspbian Linux.

Krok 3: Dodanie użytkownika innego niż root do grupy Docker

Zgodnie z procesem Raspberry Pi, którykolwiek użytkownik ma uprawnienia administracyjne, którego możemy uznać za użytkownika root, może wykonywać kontenery. Na przykład, jeśli użytkownik sprawy nie jest zalogowany do roota administratora, powinien użyć prefiksu sudo.

Możemy również dodać do grupy Docker użytkowników innych niż root, co umożliwi uruchamianie wykonywanych poleceń dockera.

Oto składnia dodawania użytkowników do grupy Docker:

adrian@raspberrypi:~ $ sudo usermod -aG docker adrian

Krok 4: Sprawdzenie wersji

Aby sprawdzić zaktualizowaną wersję platformy Docker i szczegółowe informacje na temat Raspberry Pi, zapoznaj się z poniższym poleceniem.

adrian@raspberrypi:~ $ sudo docker version
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:02:34 2022
 OS/Arch:           linux/arm64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:01:01 2022
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.7
  GitCommit:        0197261a30bf81f1ee8e6a4dd2dea0ef95d67ccb
 runc:
  Version:          1.1.3
  GitCommit:        v1.1.3-0-g6724737
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
adrian@raspberrypi:~ $

Aby uzyskać szczegółowe informacje dotyczące całego systemu, które obejmują listę kontenerów, wersję jądra i obrazy dockera, uruchom poniższe polecenie.

adrian@raspberrypi:~ $ sudo docker info
Client:
 Context:    default
 Debug Mode: false
 Plugins:
  app: Docker App (Docker Inc., v0.9.1-beta3)
  buildx: Docker Buildx (Docker Inc., v0.8.2-docker)
  compose: Docker Compose (Docker Inc., v2.6.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 0
 Server Version: 20.10.17
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 io.containerd.runtime.v1.linux runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 0197261a30bf81f1ee8e6a4dd2dea0ef95d67ccb
 runc version: v1.1.3-0-g6724737
 init version: de40ad0
 Security Options:
  seccomp
   Profile: default
  cgroupns
 Kernel Version: 5.15.56-v8+
 Operating System: Debian GNU/Linux 11 (bullseye)
 OSType: linux
 Architecture: aarch64
 CPUs: 4
 Total Memory: 909.7MiB
 Name: raspberrypi
 ID: TYYQ:SMXI:DLSS:KICM:OGER:QELC:44AD:NL63:MWOB:FKDZ:JD3I:UQUD
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: No memory limit support
WARNING: No swap limit support
adrian@raspberrypi:~ $

Krok 5: Uruchomienie kontenera Hello world

Uruchom przykładowy kontener Hello World. Tutaj musimy skonfigurować i ustawić poniższe polecenie.

adrian@raspberrypi:~ $ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
7050e35b49f5: Pull complete
Digest: sha256:7d246653d0511db2a6b2e0436cfd0e52ac8c066000264b3ce63331ac66dca625
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.
    (arm64v8)
 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/

adrian@raspberrypi:~ $

Udostępnij

Porozmawiajmy o Twoich potrzebach

POROZMAWIAJMY O USŁUGACH, JAKICH POTRZEBUJESZ DLA SWOJEGO BIZNESU

Z chęcia pomożemy Ci wzrastać w wybranym przez Ciebie biznesie.