Omnikit
DesarrolloArchivosDineroTodas las herramientas
Ctrl K
Herramientas de desarrolloHerramientas de archivosCalculadoras financierasTodas las herramientas
InicioHerramientas para desarrolladoresLinter de Dockerfile
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Linter de Dockerfile

desarrollo

Revise un Dockerfile con 55 reglas de hadolint: versiones fijadas, usuario root, caché y más

Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio. Comprobado el 16 de octubre de 2026.

Un linter de Dockerfile lee el archivo sin construirlo y señala las líneas arriesgadas o derrochadoras. Este aplica 55 de las reglas DL de hadolint, como DL3008 para paquetes de apt-get sin versión fijada y DL3002 para ejecutar como root, y da a cada hallazgo su línea, su nivel y su solución. Funciona en su navegador, sin instalación y sin Docker.

Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés

Siguiente:
  • Validador de archivos .env Revise un archivo .env línea por línea tal como lo lee dotenv y conviértalo a JSON o YAML
  • systemd OnCalendar Tester Check a systemd timer OnCalendar= value and see its next run times, or convert cron

Cómo revisar un Dockerfile en línea

1

Pegue el Dockerfile en el cuadro, abra el archivo o haga clic en Probar un ejemplo.

2

Lea los hallazgos, ordenados por línea: cada uno tiene un nivel, su código de hadolint, qué está mal y cómo corregirlo.

3

Haga clic en un hallazgo para ir a su línea, corríjalo y vea cómo la lista se actualiza mientras escribe.

4

Haga clic en Copiar informe para llevarse los hallazgos como texto, para un pull request o un ticket.

Acerca del linter de Dockerfile

Un Dockerfile puede construirse hoy y fallar el mes que viene: una imagen base sin versión fijada cambia, un apt-get install toma una versión nueva, una caché que queda en una capa hace la imagen cientos de megabytes más grande. Un linter detecta esto antes de que llegue a producción. hadolint es el estándar en los pipelines de CI; esta página aplica sus reglas de Dockerfile en su navegador.

Qué revisa. Cada hallazgo indica su línea, su código de hadolint, un nivel y una solución de una línea. Las reglas se agrupan en cinco grupos:

Grupo Ejemplos
Builds reproducibles DL3006 imagen sin etiqueta, DL3007 latest, DL3008 apt-get, DL3013 pip, DL3016 npm, DL3018 apk
Imágenes más pequeñas DL3009 listas de apt, DL3015 recommends, DL3019 caché de apk, DL3042 caché de pip, DL3059 capas RUN de más
Seguridad DL3002 usuario root, DL3004 sudo, DL4006 pipefail
Corrección DL3011 rango de puertos, DL3021 destino de COPY, DL3022 y DL3023 nombres de etapa, DL3044 ENV, DL3061 orden
Intención clara DL3000 WORKDIR, DL3003 cd, DL3020 ADD, DL3025 CMD en JSON, DL4000 MAINTAINER

Qué tan cerca está de hadolint. Las reglas se escribieron a partir del código fuente de hadolint 2.12, y las pruebas usan las respuestas del programa hadolint real para más de 80 Dockerfiles: los mismos códigos en las mismas líneas, siempre. Los builds multietapa, ONBUILD, las líneas de continuación, la directiva escape y los comentarios # hadolint ignore= en línea se comportan como en hadolint. No se incluyen las advertencias SC de ShellCheck sobre el código de shell dentro de las líneas RUN.

Desactivar una regla. Ponga # hadolint ignore=DL3008 en la línea anterior a una instrucción para omitir esa regla ahí, o # hadolint global ignore=DL3059 en cualquier lugar para omitirla en todo el archivo. El resumen indica cuántos hallazgos se desactivaron.

Todo funciona en su navegador: el Dockerfile que pega o abre nunca se sube.

Preguntas frecuentes

¿Qué significa DL3008 en hadolint?

DL3008 indica que una línea apt-get install nombra paquetes sin versión, así que cada build puede instalar algo distinto. Escriba paquete=versión, como curl=7.88.1-10+deb12u5, y busque la versión actual con apt-cache policy curl dentro de la imagen base. Fijar versiones hace la imagen reproducible; actualice las versiones a propósito, no por accidente.

¿Por qué el último USER no debe ser root?

Un contenedor que se ejecuta como root tiene derechos de root dentro de él, así que un atacante que entre en la aplicación puede hacer más, y un error en un volumen montado puede cambiar archivos del host. Cree un usuario en un RUN, como useradd app, y termine la etapa con USER app. Los pasos de build anteriores pueden seguir ejecutándose como root.

¿Por qué borrar /var/lib/apt/lists en el mismo RUN?

Cada RUN crea una capa, y un archivo eliminado en una capa posterior sigue ocupando espacio en la anterior. apt-get update descarga listas de paquetes de decenas de megabytes, así que elimínelas en el mismo RUN con && rm -rf /var/lib/apt/lists/*. Eliminarlas en un RUN aparte no ahorra nada.

¿Cómo ignoro una regla de hadolint en una línea?

Escriba un comentario justo encima de la instrucción: # hadolint ignore=DL3008, o varios códigos separados por comas. Para desactivar una regla en todo el archivo, escriba # hadolint global ignore=DL3059 en cualquier lugar. Ambos funcionan en hadolint y en esta página, y el resumen cuenta lo que se desactivó.

¿Es lo mismo que ejecutar hadolint?

Para las reglas de Dockerfile, sí: los 55 códigos DL, sus niveles y sus condiciones siguen a hadolint 2.12, y las pruebas comparan con el programa hadolint real en más de 80 archivos. No se incluyen las advertencias SC de ShellCheck sobre el código de shell dentro de las líneas RUN, ni las reglas que necesitan un archivo de configuración, como los registros permitidos.

¿Debo usar COPY o ADD en un Dockerfile?

Use COPY para archivos y carpetas. ADD además descarga URL y descomprime archivos tar locales, lo que es útil cuando quiere exactamente eso y sorprendente cuando no. hadolint señala ADD para un archivo simple como DL3020, y un COPY seguido de tar -x del mismo archivo como DL3010, donde ADD lo haría en un solo paso.

Fuentes

  • hadolint, the Haskell Dockerfile Linter (GitHub, v2.12.0)The DL rules, their levels and their exact conditions; the binary is the reference the tests compare against
  • Docker Docs, Dockerfile referenceInstruction syntax, continuation lines, the escape directive, exec and shell form
  • Docker Docs, Building best practicesPinning base images, apt-get cleanup in the same RUN, COPY over ADD, unprivileged USER

Última verificación: 16 de octubre de 2026.

Los tipos y las normas cambian; consulte la fuente antes de fiarse de una cifra.

¿Sigue sin resolverlo? Pregunte sobre Linter de Dockerfile y cualquiera que lo sepa puede responder. No se necesita cuenta.

Herramientas relacionadas

Todas las herramientas para desarrolladores
Probador de expresiones regularesPruebe expresiones regulares de JavaScript con resaltado en vivo y una explicación en lenguaje claroComparador de textosCompare dos textos lado a lado y vea cada línea añadida y eliminadaComparar JSONCompare dos documentos JSON y vea cada valor añadido, eliminado y modificadoVista previa de Open GraphPegue una página y vea la tarjeta para compartir en Facebook, LinkedIn, X, WhatsApp y SlackDensidad de palabras clave y legibilidadRecuento de palabras y frases, densidades, tiempo de lectura y puntuación de legibilidad FleschCódigos de estado HTTPTodos los códigos de estado HTTP, qué significan, cuándo enviarlos y la RFC de la que procedenAnalizador de user agentLea una cadena user-agent: navegador, motor, sistema operativo, tipo de dispositivo y si es un botProbador de JSONPathEjecute consultas JSONPath RFC 9535 sobre el JSON que pegue y vea resaltada cada coincidencia
¿Le ha resultado útil esta herramienta?
Omnikit

Tareas pequeñas, hechas en su navegador. Gratis, rápido y privado. Los archivos nunca se suben.

Archivos

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Desarrollo

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Dinero

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuíasPreguntasAcerca deCómo verificamosBiblioteca de leyes (beta)PrivacidadCondicionesDivulgaciónContactoMore: Exam practice (UGC NET Paper 1)Se ejecuta en su navegador. No se sube nada. © 2026 Omnikit (theomnikit.com)