Índice:
- Etapa 1: Por que Docker?
- Etapa 2: Docker Overhead
- Etapa 3: instale o Docker
- Etapa 4: Criação da imagem do Docker
- Etapa 5: Velocidade de construção do desenvolvimento vs. tamanho da imagem
- Etapa 6: Imagens Multi Arch
- Etapa 7: Feliz RPi
Vídeo: Construir imagem Docker para Raspberry Pi: 7 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
Estas instruções mostram como construir uma imagem do Docker para Raspberry Pi.
Etapa 1: Por que Docker?
Você pode usar o Raspberry Pi (RPi) para fazer muitas coisas, pequeno servidor da web, assistente de IA, robótica … etc.
Muitos projetos que você deseja experimentar, mas os pontos fracos são:
Hora de construir
RPi não gosta muito de poder de processamento e a unidade SD / USB limitou a velocidade de E / S. Usar apt install all dependency package requer uma hora e compilar o código-fonte requer mais horas. Especialmente para projetos relacionados à IA, é hora de esperar mais do que tentar.
Conflito de versão
Todos tentam muitos projetos em um RPi. Quando você tentou um projeto e gostaria de mudar para outro, pode encontrar alguma falha de compilação causada por conflito de versão das bibliotecas de dependência com o projeto anterior. Algumas bibliotecas pararam de se desenvolver há alguns anos e dependem de algumas bibliotecas muito antigas. Em contraste, o projeto ativo dependia das bibliotecas mais recentes. Ambos os projetos não podem coexistir na mesma unidade SD / USB ?.
Backup de imagem
Uma vez que alguns projetos não podem coexistir, basta comprar mais drives SD / USB para manter a dependência de cada imagem do projeto. Se o dinheiro não é limitado? Mas aumenta as dificuldades de gerenciamento de arquivo / imagem, às vezes você precisa trocar SD / USB e inicializar várias vezes para descobrir o que deseja.
Difícil de compartilhar
Quando você construiu seu projeto e gostaria de compartilhar a fonte com amigos, seus amigos podem receber o feed de falha de construção. Versão de distribuição / bibliotecas muito antiga ou muito nova, parâmetros de construção e alguns truques. Você precisa gastar tempo para resolver problemas de construção de outras pessoas, mas não para apoiar o projeto em si.
Os pontos de dor acima são minha experiência nestes poucos anos. O Docker pode ajudar em grande parte.
O Docker inicia a compilação selecionando uma imagem pai pré-construída. Por exemplo. debian: jessie-slim começou a partir de uma antiga distribuição leve e estável do Debian; node: 10-buster-slim start da distribuição leve do Debian com Node.js 10 instalado. A imagem pré-construída pode economizar muito tempo para fazer flash da imagem, obter atualização e instalar bibliotecas dependentes. Cada projeto pode começar com uma versão diferente do sistema operacional, versão do tempo de execução e versão das bibliotecas. Quando terminar de desenvolver seu próprio projeto, você pode enviar a imagem do Docker para o hub do docker e compartilhar com todos. Você pode manter todos os dados do projeto no mesmo SD / USB (os dados devem fazer backup de rotina em outra mídia). Para economizar armazenamento local, você pode até mesmo limpar a imagem do Docker quando não estiver em uso, a qualquer momento, você pode puxar do hub do Docker novamente.
Etapa 2: Docker Overhead
Docker adicionou uma camada de virtualização, a sobrecarga é uma preocupação. Não testei muito sobre a sobrecarga do Docker. A maioria dos resultados pesquisados no Google afirmam uma sobrecarga muito baixa e eu encontrei este documento sobre algumas pesquisas relacionadas:
domino.research.ibm.com/library/cyberdig.n…
Etapa 3: instale o Docker
Basta executar:
curl -sSL https://get.docker.com | sh
Ref.:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Etapa 4: Criação da imagem do Docker
Encontre o guia oficial sobre a construção de imagens docker:
docs.docker.com/get-started/part2/
Tenho 2 projetos usando Docker, você pode encontrar o Dockerfile como referência:
BanateCAD requer tempo de execução Lua e algumas bibliotecas Lua adicionais. Apenas Lua 5.1 pode ser compatível com todas as bibliotecas Lua necessárias, mas é o produto de 2006. A distribuição Debian mais recente que pode construir Lua 5.1 com sucesso é Jessie (a versão anterior ao antigo estável do Debian atual). Portanto, construí um Docker Image para o ambiente Lua 5.1 para executá-lo
github.com/moononournation/BanateCAD/tree/…
OpenCV é um projeto em desenvolvimento ativo, o código-fonte depende das bibliotecas e compiladores mais recentes. Portanto, é uma chance muito alta de falha de construção, assinatura de método de bibliotecas, versão do compilador, conflito de dependências … Eu gostaria de usar opencv4nodejs para fazer um aplicativo simples e não requerer os recursos mais recentes. Então, quando descobri uma maneira de construir o sucesso do opencv4nodejs, gostaria de congelá-lo em uma imagem do Docker e fazer a codificação do meu aplicativo real
github.com/moononournation/face-aware-phot…
Etapa 5: Velocidade de construção do desenvolvimento vs. tamanho da imagem
Você pode descobrir que meu projeto face-aware-photo-osd tem 2 versões do Dockfile:
github.com/moononournation/face-aware-phot…
Durante o desenvolvimento, gosto de dividir o comando RUN o menor possível e organizar o mais provável para alterar o comando RUN para a última etapa. Portanto, para cada mudança de build para desenvolvimento, posso utilizar a camada anterior construída tanto quanto possível e economizar muito na velocidade de build.
Em contraste, combinarei todos os comandos RUN em um antes do lançamento. camada inferior pode reduzir muito o tamanho da imagem do Docker. Meu projeto de foto-osd com reconhecimento de rosto, por exemplo, pode reduzir o tamanho de mais de 100 MB.
Etapa 6: Imagens Multi Arch
Como mencionado antes, RPi não gosta muito de poder de processamento. Usar imagem Docker de compilação RPi pode não ser uma boa escolha, especialmente quando seu único RPi está executando outros projetos.
Usar um computador x86 também pode ajudá-lo a construir a imagem do Docker. Encontre mais detalhes aqui:
www.docker.com/blog/multi-arch-images/
2 comandos simples podem construir x86 e ARM Docker Image em paralelo:
docker buildx create --use
docker buildx build --plataforma linux / amd64, linux / arm -t moononournation / debian-imagemagick-lua-meshlab: 1.0.1 --push.
O Multi Arch pode construir uma imagem multiplataforma com a mesma tag de imagem do Docker, para que seu projeto possa ser executado em máquinas diferentes perfeitamente. por exemplo.
docker run -it moononournation / debian-imagemagick-lua-meshlab: 1.0.1
Não importa se você execute o comando acima no RPi ou em seu computador x86, você pode obter um ambiente de tempo de execução Lua.
Etapa 7: Feliz RPi
Agora você pode desenvolver e compartilhar seu projeto RPi com mais facilidade!
Recomendado:
Como criar uma imagem de perfil incrível para seu Chromebook: 9 etapas
Como criar uma imagem de perfil incrível para o seu Chromebook: Olá a todos! Este é o Gamer Bro Cinema, e hoje vamos ensinar a você como fazer uma foto de perfil incrível para o seu canal do YouTube! Este tipo de foto de perfil só pode ser feito em um Chromebook. Vamos começar
Processamento de imagem com o Raspberry Pi: Instalando OpenCV e separação de cores de imagem: 4 etapas
Processamento de imagem com o Raspberry Pi: Instalando o OpenCV e a separação de cores da imagem: Esta postagem é o primeiro de vários tutoriais de processamento de imagem que estão por vir. Damos uma olhada mais de perto nos pixels que compõem uma imagem, aprendemos como instalar o OpenCV no Raspberry Pi e também escrevemos scripts de teste para capturar uma imagem e também c
Teste de imagem para cor e clareza: 8 etapas
Teste de Imagem para Cor e Clareza: Tornei este Instructable para mim; para melhorar meus Instructables, porém pretendo compartilhar o que encontrei. Tenho notado que algumas das imagens que carrego para o Instructabes saem perfeitas e outras imagens perdem a clareza, um pouco descoloridas ou confusas. Não sei
Coloque uma imagem para sua conta: 4 etapas
Coloque uma imagem para sua conta: Estarei mostrando a alguns de vocês pessoas que precisam de ajuda para adicionar uma imagem como avatar ou para seu instrutível. Aqui estão algumas instruções passo a passo de como fazer isso. Por favor, sinta-se à vontade para adicionar quaisquer comentários e algumas dicas para isso instrutíveis. Abaixo
Crie padrões de tabela para a imagem de fundo do site: 8 etapas
Crie padrões de mosaico para imagem de fundo do site: Aqui está um método direto e simples (eu acho) para criar imagens que podem ser colocadas lado a lado sem parecer muito "em grade". Este tutorial faz uso do Inkscape (www.inkscape.org), e editor de gráficos vetoriais de código aberto. Eu imagino que este método pode