Docker se ha convertido en una herramienta indispensable en el mundo del desarrollo de software y la administración de sistemas. Docker es una tecnología de contenedores que ha revolucionado la manera en que desarrolladores y administradores de sistemas despliegan y gestionan aplicaciones.
En esta guía, le proporcionaremos un paso a paso detallado para instalar y configurar Docker en CentOS, asegurándonos de cubrir desde los pre-requisitos hasta los primeros pasos para poner en marcha sus contenedores, en uno de los sistemas operativos más robustos y utilizados en el ámbito empresarial, CentOS proporciona un entorno estable y seguro para ejecutar aplicaciones con Docker.
¿Qué es Docker?
Docker es una plataforma que permite a los desarrolladores y administradores de sistemas crear, desplegar y ejecutar aplicaciones en contenedores. Los contenedores son unidades ligeras y portátiles que incluyen todo lo necesario para ejecutar una aplicación: código, bibliotecas, dependencias y configuraciones. A diferencia de las máquinas virtuales, los contenedores comparten el mismo sistema operativo, lo que los hace mucho más eficientes en términos de recursos.
Ventajas de Usar Docker en CentOS
CentOS, una distribución de Linux basada en Red Hat Enterprise Linux (RHEL), es ampliamente utilizada en entornos empresariales debido a su estabilidad, seguridad y rendimiento. Docker complementa estas características, proporcionando una solución potente para la virtualización ligera. Algunas de las ventajas de usar Docker en CentOS incluyen:
- Compatibilidad: Docker está optimizado para funcionar en sistemas Linux, y CentOS es una de las distribuciones más recomendadas para este propósito.
- Estabilidad y Seguridad: CentOS es conocido por su enfoque en la estabilidad y seguridad, lo que es crucial para la implementación de aplicaciones en producción.
- Soporte Empresarial: Al estar basado en RHEL, CentOS ofrece soporte extendido y una amplia comunidad de usuarios y desarrolladores.
- Eficiencia en Recursos: Docker permite el uso eficiente de los recursos del sistema, algo que es maximizado en un entorno CentOS.
Pre-requisitos
Antes de comenzar con la instalación de Docker, asegúrese de cumplir con los siguientes requisitos:
- Un sistema CentOS 7 o superior.
- Tener conocimientos básicos de Linux.
- Acceso a una cuenta de usuario con privilegios de sudo.
- Conexión a Internet para descargar los paquetes necesarios.
Actualización del Sistema
Es fundamental que su sistema esté actualizado antes de instalar Docker; esto es, para contar con las últimas actualizaciones de los componentes. Abrimos una terminal y ejecutamos el siguiente comando para actualizar todos los paquetes existentes:
sudo yum -y update
Este comando actualizará todos los paquetes instalados en su sistema a sus versiones más recientes.
Instalación de Docker
Agregar el Repositorio de Docker
Para instalar Docker, primero debe agregar su repositorio oficial ya que no viene como un repositorio predeterminado en CentOS. Utilice el siguiente comando:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Instalar Docker
Después de agregar el repositorio, instale Docker utilizando el siguiente comando:
sudo yum -y install docker-ce docker-ce-cli containerd.io
Este comando instalará Docker y todas sus dependencias necesarias. Hasta aquí ya estaría instalado el software necesario para usar Docker.
Configuración Post-Instalación
Una vez instalado Docker vamos a configurarlo.
Iniciar y habilitar docker
Inicie el servicio y habilite para que se ejecute automáticamente al arrancar el sistema:
sudo systemctl start docker &
sudo systemctl enable docker
Agregar el usuario al grupo docker
Para evitar tener que usar sudo en cada comando de Docker, agrega su usuario al grupo docker:
sudo usermod -aG docker $USER
Después de ejecutar este comando, cierre la sesión y vuelva a iniciarla para que los cambios surtan efecto.
Primeros Pasos con Docker
Verificar la instalación
Para verificar que Docker se ha instalado correctamente, ejecute el siguiente comando:
docker --version
Debería ver la versión de docker instalada en su sistema.
Ejecutar un contenedor de prueba
Para asegurarse de que Docker está funcionando correctamente, ejecute un contenedor de prueba:
docker run hello-world
Este comando descarga una imagen de prueba y ejecuta un contenedor que muestra un mensaje de bienvenida.
Comandos Básicos de Docker
Docker utiliza imágenes para crear contenedores. Las imágenes son plantillas que contienen todo lo necesario para ejecutar una aplicación. Usted puede gestionar estas imágenes y contenedores utilizando comandos de Docker (reemplace [image_name] por el nombre de la imagen y [container_name] por el nombre del contenedor):
- Listar Imagenes:
docker images
- Descargar Imagen:
docker pull [image_name]
- Eliminar Imagen:
docker rmi [image_name]
- Listar Contenedores:
docker ps
- Crear y ejecutar un contenedor:
docker run -d --name [container_name] [image_name]
- Iniciar un Contenedor:
docker start [ID]
- Detener un Contenedor:
docker stop [ID]
- Forzar un Contenedor en ejecución:
docker kill [container_name]
- Eliminar un Contenedor:
docker rm [ID]
- Revisar los logs:
docker logs -f [container_name]
- Verificar las estadísticas:
docker stats -all
Implementar aplicaciones en Docker
Una de las grandes ventajas de Docker es su capacidad para simplificar la implementación de aplicaciones. Puede crear un archivo Dockerfile que defina cómo construir una imagen para su aplicación, y luego usar docker-compose para gestionar servicios múltiples.
Aquí tenemos un dockerfile para configurar un servidor de Apache:
FROM centos:7
RUN yum install -y httpd
COPY ./mi_codigo /var/www/html/
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
Luego creamos un archivo yaml que tendría por nombre docker-compose.yml donde estaría la configuración de nuestro servidor de apache y podemos ejecutar el comando:
sudo docker-compose up -d
Es recomendable crear un directorio de forma individual para crear sus contenedores personalizados para que no llegue a existir confusión. Otra recomendación es que si usted es el responsable de DevOps y va a manejar muchos contenedores personalizados para sus ambientes de prueba y producción es fundamental llevar un repositorio git para la documentación y control. Si es desarrollador seguramente su configuración de docker ya está en el código y también ya tiene configurado su repositorio de versiones.
Mejores Prácticas en la Gestión de Contenedores
Para garantizar un entorno seguro y eficiente, considere las siguientes mejores prácticas:
- Mantenga sus imágenes actualizadas: Regularmente actualice las imágenes de Docker para incluir las últimas correcciones de seguridad.
- Compatibilidad de dependencias: Puede que en nuestra imagen utilicemos dependencias de terceros, debemos tener siempre en cuenta la compatibilidad de las versiones.
- Utilice variables de entorno: Almacene configuraciones sensibles como credenciales en variables de entorno en lugar de en el código fuente.
- Supervise sus contenedores: Utilice herramientas como Prometheus o Grafana para monitorear el rendimiento de sus contenedores.
- Gestione los recursos: Limite el uso de CPU y memoria de sus contenedores para evitar sobrecargar su sistema.
- Docker Desktop: Si prefiere administrar las imágenes y los contenedores desde una interfaz gráfica de usuario (más amigable que la línea de comandos), puede descargar esta aplicación desde el sitio oficial de docker.
Solución de Problemas Comunes
Aunque Docker es robusto, pueden surgir problemas. Aquí hay algunos consejos para solucionar problemas comunes:
- Problemas de conectividad: Verifique que el puerto necesario esté expuesto correctamente y que no haya bloqueos de firewall.
- Errores de permisos: Asegúrese de que los archivos y directorios utilizados por Docker tengan los permisos correctos.
- Contenedores que no inician: Revise los logs del contenedor para obtener más detalles sobre el error.
Buscar ayuda en Docker
Documentación oficial: Si tiene alguna pregunta o encuentra algún problema durante la instalación, no dude en consultar la documentación oficial de Docker.
Foros Docker: Buscar ayuda en la comunidad de Docker.
Lista ampliada de comandos: Puede descargarse el CLI Cheat Sheet con los más comandos para ejecutar desde la terminal
Catálogo de aplicaciones: Bitnami de VMware tiene un amplio catálogo de aplicaciones para docker, que con certeza le serán de utilidad.
Conclusión
La instalación de Docker en CentOS es un proceso sencillo si sigue los pasos adecuados. Docker ofrece una plataforma robusta para desarrollar, desplegar y ejecutar aplicaciones en contenedores, mejorando la eficiencia y la consistencia en los entornos de desarrollo y producción. Con esta guía, debería estar bien encaminado para comenzar a utilizar Docker en su sistema CentOS y explorar sus poderosas capacidades.