Raspberry - Rodando containers no Raspberry pi - Atualizado 10/09/2020
August 19, 2020 raspberry docker containers arm
Olá pessoal, estava tentando testar algumas aplicações no Raspberry PI, então eu pensei: Por quê não em contêiner?
Então comecei a pesquisar um pouco sobre Docker na arquitetura ARM e durante os testes aconteceram algumas coisas interessantes que vou relatar aqui.
Para essa primeira rodada de testes foi usada a última versão disponível do Raspbian que foi gravada nos cartões de memória.
Aqui tem um tutorial ensinando a fazer a instalação no Raspberry.
Bom pra deixar mais claro os testes, usei 2 modelos diferentes de Raspberry:
- Raspberry Pi 3 Model B Rev 1.2
- Raspberry Pi Zero W Rev 1.1
Bom então começando os trabalhos com o Pi “Maior” eu instalei o Raspbian Lite no cartão e logo depois os pacotes recomendados.
Nesse passo deu tudo certo sem erros.
Depois vem a hora de executar o script de instalação do Docker, que é uma mão na roda pra fazer essa instalação.
No final da instalação é necessário adicionar o usuário PI ao grupo docker:
sudo usermod -aG docker pi
Se você quer o docker-compose também precisa seguir esses passos adicionais:
sudo apt-get install -y libffi-dev libssl-dev
sudo apt-get install -y python3 python3-pip
sudo apt-get remove python-configparser
**sudo pip3 -v install docker-compose **
Até aqui deu tudo certo.
Quanto aos containers, você precisa procurar imagens que sejam ARM no Docker Hub
Ficam aqui um exemplo:
version: '3'
volumes:
portainer_data:
nextcloud_data:
#
services:
nextcloud:
container_name: nextcloud
image: armhero/nextcloud
volumes:
#- $PWD/nextcloud:/var/www/html
- nextcloud_data:/data
ports:
- 8091:80
#
portainer:
container_name: portainer
image: portainer/portainer:latest
command: -H unix:///var/run/docker.sock
restart: always
ports:
- 9000:9000
- 8000:8000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
#
rpi-monitor:
container_name: rpi-monitor
image: michaelmiklis/rpi-monitor:latest
volumes:
- /opt/vc:/opt/vc
- /boot:/boot
- /sys:/dockerhost/sys:ro
- /etc:/dockerhost/etc:ro
- /proc:/dockerhost/proc:ro
- /usr/lib:/dockerhost/usr/lib:ro
devices:
- "/dev/vchiq:/dev/vchiq"
- "/dev/vcsm:/dev/vcsm"
restart: unless-stopped
ports:
- 8888:8888
#
Bom povo, como fui convidado pra falar um pouco sobre essa experiência no Meetup de Docker de Porto Alegre, eu criei um repositório no Github com os docker-compose files: