miércoles, 6 de marzo de 2019

Instalar Docker CE en Debian 9 "Stretch"

En este post vamos a ver la instalacion de Docker CE en sistemas operativos Debian version 9 "Stretch", al final de post vamos a ver una serie de mejores practicas y solucion de errores comunes post instalacion.

Previo a la instalacion de cualquier paquete en los sistemas operativos es recomendable contar con todo actualizado antes de empezar, para esto ejecutaremos:

apt-get update
aptg-get upgrade -y

Una vez realizado esto estamos en condiciones de instalar Docker, para esto primero instalamos estas dependencias:

sudo apt-get install apt-transport-https ca-certificates software-properties-common curl -y

Ahora bajamos la key para acceder a los repositorios de Docker:

curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -

Agregamos el repositorio de Docker.

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable"

Actualizamos los repositorios y procedemos a instalar Docker:

sudo apt-get update
sudo apt-get install docker-ce -y


Hasta aca todo bien, ya tenemos Docker instalado y funcionando en nuestro Servidor:






Puede funcionar de manera default, pero sugiero hacer modificaciones para la gestion remota y la rotacion de logs (me paso que los logs nunca se rotan y da como consecuencia un disco lleno que se pone en solo lectura y termina afectando a las aplicaciones)

A continuacion dejo unos comandos para configurar esto, el mismo crea el archivo daemon.json dentro del directorio /etc/docker


echo '{' > /etc/docker/daemon.json
echo '        "hosts": [ "tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"],' >> /etc/docker/daemon.json
echo '        "log-driver": "json-file",' >> /etc/docker/daemon.json
echo '        "log-opts": {' >> /etc/docker/daemon.json
echo '            "max-size": "10m",' >> /etc/docker/daemon.json
echo '            "max-file": "2"' >> /etc/docker/daemon.json
echo '        }' >> /etc/docker/daemon.json
echo '}' >> /etc/docker/daemon.json









Esto configura el tamaño maximo de los logs y la cantidad de archivos de logs a mantener, tambien expone la API de administracion a traves de su puerto default (2375) *

Si hacemos un CAT del archivo previamente mencionado podemos ver que los valores se escribieron correctamente en el:













Concluido esto reiniciamos el servicio de docker mediante service docker restart
En el caso que el servicio falle al iniciar ejecutar estos comandos y Docker volvera a funcionar con los cambios anteriores guardardos:

sudo cp /lib/systemd/system/docker.service /etc/systemd/system/
sudo sed -i 's/\ -H\ fd:\/\///g' /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo service docker restart


(*) La API de administracion permite administrar Docker de manera remota, ya sea por linea de comando o utilizando aplicaciones como Portainer. Es importante destacar que esta API debe estar protegida mediante certificados TLS para evitar su mal uso.

En el caso de no poder segurizarla con certificados recomiendo bloquear acceso a este puerto desde todos los host de la red, especialmente desde Internet. En el caso de necesitar acceder a este puerto permitir mediante IPTABLES u otro Firewall unicamente la IP desde donde se administrara este equipo.

Espero que les sirva esta informacion.

No hay comentarios.:

Publicar un comentario