Tabla de contenido:
- Paso 1: ¿Por qué Docker?
- Paso 2: Docker Overhead
- Paso 3: instala Docker
- Paso 4: creación de la imagen de Docker
- Paso 5: velocidad de creación de desarrollo frente al tamaño de la imagen
- Paso 6: Imágenes de arco múltiple
- Paso 7: ¡Feliz RPi
Video: Crear una imagen de Docker para Raspberry Pi: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
Estos instructivos muestran cómo crear una imagen de Docker para Raspberry Pi.
Paso 1: ¿Por qué Docker?
Puede usar Raspberry Pi (RPi) para muchas cosas, un pequeño servidor web, un asistente de inteligencia artificial, robótica … etc.
Muchos proyectos que desea probar, pero los puntos débiles son:
Hora de construir
A RPi no le gusta la potencia de procesamiento y la unidad SD / USB limita la velocidad de E / S. Use apt install all dependency package requiere una hora y la creación de la fuente requiere más horas. Especialmente para proyectos relacionados con la IA, es hora de esperar más que de intentarlo.
Conflicto de versión
Todos prueban muchos proyectos en un RPi. Cuando haya probado un proyecto y le gustaría cambiar a otro, puede encontrar algún error de compilación causado por el conflicto de la versión de las bibliotecas de dependencia con el proyecto anterior. Algunas bibliotecas dejaron de desarrollarse hace unos años y dependen de algunas bibliotecas muy antiguas. Por el contrario, el proyecto activo dependía de las últimas bibliotecas. Ambos proyectos no pueden coexistir en la misma unidad SD / USB ?.
Copia de seguridad de imagen
Dado que algunos proyectos no pueden coexistir, simplemente comprar más unidades SD / USB para mantener la imagen de cada proyecto dependiente es una forma. ¿Si el dinero no es limitado ?. Pero aumenta las dificultades de la gestión de archivos / imágenes, a veces es necesario intercambiar SD / USB y arrancar muchas veces para averiguar lo que desea.
Difícil de compartir
Cuando creaste tu proyecto y te gustaría compartir la fuente con tus amigos, tus amigos pueden recibir la retroalimentación fallida de compilación. Versión de distribución / bibliotecas demasiado antigua o demasiado nueva, parámetros de construcción y algunos trucos. Necesita usar el tiempo para resolver problemas de construcción de otros, pero no para apoyar el proyecto en sí.
Los puntos de dolor anteriores son mi experiencia en estos pocos años. Docker puede ayudar en la mayor parte.
Docker comienza a compilar seleccionando una imagen principal prediseñada. P.ej. debian: jessie-slim comienza a partir de una antigua distribución estable de peso ligero de Debian; node: 10-buster-slim start a partir de la distribución ligera de Debian con Node.js 10 instalado. La imagen prediseñada puede ahorrar mucho tiempo para actualizar la imagen, actualizar e instalar bibliotecas dependientes. Cada proyecto puede comenzar desde una versión de sistema operativo, una versión en tiempo de ejecución y una versión de bibliotecas diferentes. Cuando haya terminado de desarrollar su propio proyecto, puede enviar la imagen de Docker a Docker Hub y compartirla con todos. Puede mantener todos los datos del proyecto en el mismo SD / USB (los datos deben realizarse una copia de seguridad de forma rutinaria en otros medios). Para ahorrar almacenamiento local, incluso puede limpiar la imagen de Docker cuando no la use, en cualquier momento que pueda volver a extraerla del concentrador de Docker.
Paso 2: Docker Overhead
Docker agregó una capa de virtualización, la sobrecarga es una preocupación. No he probado demasiado sobre la sobrecarga de Docker. La mayoría de los resultados buscados en Google afirman una sobrecarga muy baja y encontré este documento sobre algunas investigaciones relacionadas:
domino.research.ibm.com/library/cyberdig.n…
Paso 3: instala Docker
Simplemente ejecute:
curl -sSL https://get.docker.com | sh
Árbitro.:
www.raspberrypi.org/blog/docker-comes-to-…
docs.docker.com/get-started/
Paso 4: creación de la imagen de Docker
Encuentre la guía oficial sobre cómo crear una imagen de la ventana acoplable:
docs.docker.com/get-started/part2/
Tengo 2 proyectos usando Docker, puede encontrar el Dockerfile como referencia:
BanateCAD requiere tiempo de ejecución de Lua y algunas bibliotecas de Lua adicionales. Sólo Lua 5.1 puede ser compatible con todas las bibliotecas de Lua necesarias, pero es el producto de 2006. La última distribución de Debian que puede construir Lua 5.1 con éxito es Jessie (la versión anterior al antiguo estable de Debian). Así que construí una imagen de Docker de entorno Lua 5.1 para ejecutarla
github.com/moononournation/BanateCAD/tree/…
OpenCV es un proyecto en desarrollo activo, el código fuente depende de las últimas bibliotecas y compilador. Por lo tanto, es muy probable que la compilación falle, la firma del método de las bibliotecas, la versión del compilador, el conflicto de dependencia … Me gustaría usar opencv4nodejs para hacer una aplicación simple y no requiera las últimas funciones. Entonces, cuando encontré una manera de construir opencv4nodejs exitosamente, me gustaría congelarlo en una imagen de Docker y hacer la codificación de mi aplicación real
github.com/moononournation/face-aware-phot…
Paso 5: velocidad de creación de desarrollo frente al tamaño de la imagen
Puede encontrar que mi proyecto face -ware-photo-osd tiene 2 versiones de Dockfile:
github.com/moononournation/face-aware-phot…
Durante el desarrollo, me gusta dividir el comando EJECUTAR lo más pequeño posible y organizar lo más probable para cambiar el comando EJECUTAR al último paso. Entonces, para cada cambio de compilación para el desarrollo, puedo utilizar la capa compilada anterior tanto como sea posible y ahorrar mucha velocidad de compilación.
Por el contrario, combinaré todos los comandos RUN en uno antes del lanzamiento. una capa menor puede reducir mucho el tamaño de la imagen de Docker. Mi proyecto de rostro-consciente-foto-osd, como ejemplo, puede reducir más de 100 MB de tamaño.
Paso 6: Imágenes de arco múltiple
Como se mencionó anteriormente, a RPi no le gusta la potencia de procesamiento. Usar RPi para construir una imagen de Docker puede no ser una buena opción, especialmente cuando su único RPi está ejecutando otros proyectos.
El uso de una computadora x86 también puede ayudarlo a crear la imagen de Docker; encontrará más detalles aquí:
www.docker.com/blog/multi-arch-images/
2 comandos simples pueden construir x86 y ARM Docker Image en paralelo:
docker buildx create --use
docker buildx build --platform linux / amd64, linux / arm -t moononournation / debian-imagemagick-lua-meshlab: 1.0.1 --push.
Multi Arch puede crear una imagen multiplataforma con la misma etiqueta de imagen de Docker, por lo que su proyecto puede ejecutarse en diferentes máquinas sin problemas. p.ej.
docker run -it moononournation / debian-imagemagick-lua-meshlab: 1.0.1
No importa si ejecuta el comando anterior en RPi o en su computadora x86, puede obtener un entorno de ejecución Lua.
Paso 7: ¡Feliz RPi
¡Ahora puede desarrollar y compartir su proyecto RPi más fácilmente!
Recomendado:
Cómo hacer una imagen de perfil impresionante para su Chromebook: 9 pasos
Cómo hacer una imagen de perfil impresionante para su Chromebook: ¡Hola a todos! Este es Gamer Bro Cinema, y hoy, ¡te enseñaremos cómo hacer una increíble imagen de perfil de YouTube para tu canal de YouTube! Este tipo de imagen de perfil solo se puede hacer en un Chromebook. ¡Empecemos
Transforma una imagen en una escultura de varilla: 7 pasos (con imágenes)
Transformar una imagen en una escultura de varilla de clavija: En este proyecto, convertí una imagen de un globo de aire caliente en una escultura de varilla de clavija. La estructura final es una transformación de la información digital almacenada en una foto en un objeto 3D físico. Construí la escultura para ayudar a visualizar cómo imag
Crear mis propios gráficos para mis datos de IOT en una Raspberry PI: 3 pasos
Crear mis propios gráficos para mis datos de IOT en una Raspberry PI: siga leyendo si desea poder crear sus propios gráficos de IOT utilizando 7 líneas de código. Quería crear gráficos para mostrar datos en un formato gráfico de mis sensores de IOT en una página web. Anteriormente, para esto, había utilizado servicios de terceros (algunos pa
Ponga una imagen para su cuenta: 4 pasos
Ponga una imagen para su cuenta: les mostraré algunas de las personas que necesitan ayuda para agregar una imagen como avatar o para sus instrucciones. Aquí hay algunas instrucciones paso a paso sobre cómo hacer esto. Por favor, siéntase libre de agregar comentarios y algunos consejos para este instructivo. Debajo
Cómo crear una imagen completamente enfocada a partir de varias parcialmente enfocadas: 4 pasos
Cómo crear una imagen completamente enfocada a partir de varias parcialmente enfocadas: sugiero usar el software Helicon Focus. Las versiones para Windows y Mac están disponibles en el sitio de d-Stidio. El programa está diseñado para macrofotografía, microfotografía y fotografía de paisaje hiperfocal para hacer frente al problema de la poca profundidad de campo. Hola