Docker
Instalar Docker
Raspberry PI
Mostrar
El primer paso es comprobar que no tenemos ningún paquete instalado desde los repos oficiales de debian
sudo apt-get remove docker docker-engine docker.io containerd runc -y
Descargamos el script proporcionado por la propia Docker y lo ejecutamos para instalarlo
sudo curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
Activamos el servicio de Docker
sudo systemctl enable docker && sudo systemctl start docker
Añadimos al usuario pi al grupo autorizado para ejecutar Docker
sudo usermod -aG docker pi
Si deseamos lo servicios de machine(opcional) y compose, es necesario descargar la ultima versión disponible, en el caso de Raspberry, no hay release oficial de compose, pero linuxsever si proporciona versiones de 32 bits para Raspberry. Una vez descargados, los copiamos en la carpeta de ejecutables y cambiamos sus permisos para poder ejectutarlos
sudo cp docker-machine /usr/local/bin/docker-machine && sudo chmod +x /usr/local/bin/docker-machine && sudo ln -s /usr/local/bin/docker-machine /usr/bin/docker-machine
sudo cp docker-compose /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose && sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Compilar Compose
Si deseamos compilar la versión de compose para Raspberry Pi,el primer paso es clonar el repo oficial y establecer la ultima rama estable
git clone https://github.com/docker/compose.git
cd compose
git checkout 1.29.2
Ejecutamos el script para compilar la verión de linux
./script/build/linux
Comprobamos en la carpeta dist que tenemos la build y comprobamos la versión compilada
cd dist
./docker-compose-Linux-armv7l version
Por ultimo, comprobamos las dependecias que incluye dicho ejecutable
ldd docker-compose-Linux-armv7l
Portainer
Portainer es una imagen de docker que nos ofrece una UI que podemos utilizar desde el navegador web
Creamos la primera vez un volume para que lo pueda utilizar el contenedor y posteriormente arrancamos la imagen de portainer-ce
docker volume create portainer_data && docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Actualizar contenedor de portainer-ce en una sola línea (sin borrar el volume)
docker container stop portainer && docker container rm -f portainer && docker image rm -f portainer/portainer-ce:latest && docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
Borrar toda la información asociada a portainer-ce
docker container stop portainer && docker container rm -f portainer && docker volume rm -f portainer_data && docker image rm -f portainer/portainer-ce:latest
Tips
Limpiar archivos no necesarios de anteriores contenedores. Nota: todos los contenedores han de estar activos, si están parados también borrara la información de dichos contenedores
df -h && docker system prune --all --force && sudo find /var/lib/docker/containers/ -type f -name “\*.log” -delete && df -h && sudo shutdown -r now
