En este post vamos a aprender como instalar Docker en un raspberry Pi 4. Docker es el standard para crear aplicaciones en contenedores.

Necesito una forma para practicar en los siguientes laboratorios, y la mejor forma de encapsular un entorno es con Docker.

Requisitos

  • Raspberry pi 4 con Ubuntu 20.04.1 LTS
  • Conocimiento básico de comandos linux
  • Conocimiento básico de Docker

Laboratorio:

  1. Desinstala cualquier versión anterior de docker

Esto mantendrá el contenido en /var/lib/docker/ imágenes, contenedores, volúmenes y redes de cualquier versión anterior.

sudo apt-get remove docker docker-engine docker.io containerd run

2. Instala las dependencias para docker.

sudo apt update && sudo apt install -y \
apt-transport-https ca-certificates curl \
gnupg-agent software-properties-common

3. Agrega la llave oficial GPG de Docker:

curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo apt-key add -

4. Configura el repositorio de paqueterías estable

sudo add-apt-repository "deb [arch=arm64] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable"

5. Actualiza e instala Docker.

sudo apt-get update && sudo apt install -y docker-ce \
docker-ce-cli containerd.io

6. Prueba el binario de docker.

sudo docker version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46
 Built:             Wed Sep 16 17:03:40 2020
 OS/Arch:           linux/arm64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46
  Built:            Wed Sep 16 17:02:11 2020
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
Si tratas de usar el comando docker version con el usuario actual (sin sudo) veras un error
docker version
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46
 Built:             Wed Sep 16 17:03:40 2020
 OS/Arch:           linux/arm64
 Experimental:      false
Got permission denied while trying to connect to the Docker daemon socket at
unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version:
dial unix /var/run/docker.sock: connect: permission denied Client: Docker Engine - Community

Esto es por que necesitas agregar al usuario actual al grupo de usuarios docker

7. Agregamos el usuario al grupo docker

sudo usermod -aG docker $USER
$USER es una variable de entorno que se intercambiara por tu usuario.

8. Aplica los cambios al grupo, puedes reiniciar la terminal o puedes usar el comando newgrp

newgrp docker
También puedes reiniciar la consola

9. Prueba la instalación con docker version

docker version
Client: Docker Engine - Community
 Version:           19.03.13
 API version:       1.40
 Go version:        go1.13.15
 Git commit:        4484c46
 Built:             Wed Sep 16 17:03:40 2020
 OS/Arch:           linux/arm64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.13
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       4484c46
  Built:            Wed Sep 16 17:02:11 2020
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.3.7
  GitCommit:        8fba4e9a7d01810a393d5d25a3621dc101981175
 runc:
  Version:          1.0.0-rc10
  GitCommit:        dc9208a3303feef5b3839f4323d9beb36df0a9dd
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

Bien, la instalacion de docker esta funcionando.

Referencias: