Skip to main content
assuresoft-blog-docker-mistakes

Si trabaja en el campo de la tecnología, probablemente haya oído hablar de Docker, un proyecto de código abierto que automatiza la implementación de aplicaciones dentro de contenedores de software. Para comprender mejor el concepto, es importante comprender primero qué es un contenedor.

Un contenedor es un administrador de herramientas, simplificado, ligero en memoria, inalterable y rápido. Estas características permiten resolver el problema de cómo hacer que el software funcione de manera confiable al pasar de un entorno a otro.

Una de las ventajas de los contenedores es que, dado que contienen servicios, es posible ejecutar varios contenedores dentro de la misma máquina. Se pueden configurar como se desee y, cuando se llevan a otro lugar, funcionan exactamente igual.

¿QUÉ ES DOCKER?

Docker se ha convertido en sinónimo de tecnología de contenedores porque ha sido el ejemplo más exitoso, sin embargo, el concepto de contenedor ha existido durante muchos años. En la versión clásica, tenía que configurar todo para un sistema operativo, pero ahora simplemente carga las dependencias en un contenedor Docker y pueden ser portátiles.

Esta herramienta empaqueta, suministra y ejecuta contenedores independientes del sistema operativo. Además, ayuda a no perder el tiempo configurando el entorno y las dependencias del sistema, ya que puede implementarse fácilmente.

ERRORES AL UTILIZAR DOCKER

Aquí hay algunas explicaciones de algunas prácticas que deben evitarse al usar contenedores Docker:

  • No almacene datos dentro de un contenedor: Si es necesario almacenar datos, hágalo en un volumen, que sirve para almacenar información y mantener el contenedor intacto. También debe tener cuidado si dos contenedores escriben datos en el mismo volumen, ya que podrían causar daños. No olvides que un contenedor debe ser bastante transparente.
  • No maneje las credenciales: Envíe las credenciales por variables de entorno y no las escriba dentro del contenedor.
  • No envíe su solicitud en dos partes o más: cada contenedor debe tener un servicio único y debe cumplir una única función. No es aconsejable asignar más de una tarea o dividirla en más contenedores.
  • No cree imágenes grandes: una imagen grande será más difícil de distribuir. Para un mejor funcionamiento, le recomendamos que tenga contenedores sueltos de acuerdo con la tecnología o aplicación que tenga. Además, tenga en cuenta que no es bueno ejecutar actualizaciones innecesarias en el contenedor.
  • No cree imágenes a partir de contenedores en ejecución: no use Docker para generar más Docker, y no intente crear algo nuevo basado en una imagen antigua o una plantilla.
  • No utilice solo la última etiqueta: se recomiendan las etiquetas debido al uso de las capas en los contenedores. Esto proporcionará un proceso ordenado en el crecimiento del contenedor. Por otro lado, si la última etiqueta se actualiza todo el tiempo, no tendrá ningún registro histórico ya que todo se sobrescribirá.
  • No ejecute más de un proceso en un solo contenedor: cada contenedor debe tener una tarea asignada con un único propósito.
  • No ejecute procesos como usuarios root: la raíz es el superusuario. Por seguridad, no se recomienda el uso de usuarios root, ya que un comando incorrecto puede borrar una base de datos. Debido a esto, es mejor optar por permisos restringidos y tener usuarios regulares.
  • No confíe en las direcciones IP: le recomendamos que ingrese todas las opciones de contenedor dentro de la misma red para que puedan trabajar juntas. Si su aplicación o microservicio necesita comunicarse con otro contenedor, use variables de entorno para pasar el nombre de host y el puerto correctos de un contenedor a otro.

RECOMENDACIONES

  • Al principio no es recomendable implementar Docker 100%. Una mejor opción es hacerlo gradualmente. De esta manera puede progresar de manera ordenada y controlada.
  • En Docker Hub hay varios archivos de plantilla que están dockerizados. Le recomendamos que los tome como punto de partida en nuevos proyectos o que aproveche las configuraciones existentes; simplemente descárguelos y cárguelos.
  • Le recomendamos que no ejecute más de un servicio a la vez en un contenedor.
  • El contenedor debe ser "efímero", esto significa que puede detenerse, destruirse, luego construirse y reemplazarse con una configuración mínima y absoluta.
  • Si tiene más de una imagen, se recomienda usar Docker-Compose.
  • Recomendamos utilizar variables de entorno para almacenar credenciales, información confidencial y / o duradera.