Sin lugar a dudas una de las grandes ventajas de Internet es que pone a tu disposición una cantidad de información brutal. Información que hace unas pocas décadas, jamás podría haber pensado que estaría a mi disposición con tan solo escribir unas pocas palabras. Sin embargo, esto ha traído un problema, y es que mucha de esta información es incorrecta. ¿Quien querría poner información incorrecta en Internet? Por supuesto que nadie, o al menos eso quiero creer yo. Existen diferentes razones para que exista información incorrecta en Internet, y esto pensando en la información técnica, que es básicamente lo que puedes encontrar en atareao.es. Una de las razones, es lo rápido que evoluciona la tecnología unido a que o bien no se actualizan los sitios o simplemente se abandonan. Se como fuere, y dada la importancia que actualmente tiene para mi docker y Raspberry, he creído necesario, escribir este artículo
El objetivo de este artículo, es mantenerlo siempre al día. Como digo docker y Raspberry son una pareja increíble que te pueden dar mucho, pero que mucho juego. Te permiten instalar y probar servicios, de una forma realmente sencilla, y además con un mínimo de basura, en el caso de que decidas quitarlo por la razón que sea.
Así, desde luego mi recomendación es que utilices, tanto docker y Raspberry para probar servicios. Incluso para tenerlos en producción en tu Raspberry Pi. Eso si, no está de mas que le des un vistazo a la instalación directa de servicios como Nginx, u otros, conforme te explico en el tutorial sobre Raspberry Pi.
Docker y Raspberry
Como te decía en la introducción una de las grandes ventajas de docker y Raspberry, es la facilidad que te ofrecen para probar e incluso poner en producción diferentes servicios. Es algo realmente sencillo, y por tanto, elimina una parte desagradable, que es la frustración que puedes llegar a sentir cuando no consigues poner en marcha un servicio.
Sin embargo, tienes, o puedes tener el problema de instalar docker y docker-compose en la Raspberry Pi. Voy a intentar resolverlo de forma sencilla, aunque puede ser que no sea la mas adecuada, en tanto en cuanto le tienes que prestar un mínimo de atención.
¿Prestar un mínimo de atención?¿A que me refiero? Siguiendo las instrucciones que encontrarás a continuación, va a ser relativamente sencillo que instales docker y docker-compose en la Raspberry, pero como lo instalas desde un repositorio, ya sea oficial u oficioso, en el caso de que se produzca una actualización de estas herramientas, ya sea por un parche de seguridad o por cualquier otra razón, no se va a actualizar de inmediato en tu equipo, dado que la instalación que te recomiendo hacer es directa.
Por esta razón, te recomiendo que estés atento a cualquier noticia relativa a actualizaciones en docker, y de esta manera te evitarás problemas.
Instalar docker en la Raspberry
Para instalar docker en la Raspberry, tan solo tienes que ejecutar la siguiente instrucción en el terminal,
curl -sSL https://get.docker.com | sh
El siguiente paso que no es directamente relacionado con instalar docker, pero que es necesario si no quieres ejecutar docker como root
, es el de añadir a tu usuario al grupo docker
. Como te digo esto te evitará tener que ejecutar cada comando docker
con derechos de administrador, y por tanto te evitará mas de un problema. Para ello, ejecuta las siguientes instrucciones en un terminal,
- Crea el grupo
docker
,
sudo groupadd docker
- Añade a tu usuario al grupo,
sudo usermod -aG docker pi
Ppr otro lado, si no quieres salir y entrar en la sesión, puedes activar los cambios ejecutando la siguiente instrucción,
newgrp docker
Por supuesto, no está de mas que pruebes que todo funciona como debe. Para ello, existe una imagen docker que te permite hacerlo de forma sencilla,
docker run hello-world
Si por lo que fuera, no pudiste resistirte a la tentación, y ejecutaste la primera vez docker como root
, la próxima vez que lo ejecutes sin derechos de administrador, te dará un error,
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
Para resolver este error, tienes dos opciones. La mas sencilla que simplemente es borrar el directorio ~/.docker
o la otra opción que es cambiar la propiedad de ese directorio,
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
Instalar docker-compose en la Raspberry
Por otro lado, si además de ejecutar contenedores independientes, quieres levantar varios contenedores relacionados entre sí, tal y como te explico en el capítulo 8 sobre orquestar contenedores con Docker Compose del tutorial sobre docker, necesitarás utilizar docker-compose
. Para instalar esta potente herramienta en tu Raspberry, solo tienes que seguir los siguiente pasos,
Lo primero instalar las dependencias necesarias,
sudo apt install -y libffi-dev libssl-dev
sudo apt install -y python3-pip
Y a continuación instalar docker-compose
. Tan sencillo como ejecutar,
sudo pip3 install docker-compose
En la documentación oficial de docker, encontrarás que te indica que puedes instalarlo con una instrucción como la siguiente,
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Sin embargo, lo cierto es que a mi no me ha funcionado en la Raspberry, con lo que por esta razón, te he indicado esta otra alternativa.
Desinstalar docker-compose
En el caso de que, por la razón que sea, quieras desinstala docker-compose
, tan solo tienes que ejecutar las siguientes instrucciones,
sudo pip3 uninstall docker-compose
Imagen de portada Will Porada en Unsplash