[SOLUCIONADO] Error 'invalid reference format' en Docker
El error docker: invalid reference format (o invalid reference format: repository name must be lowercase) ocurre al ejecutar comandos docker run, docker pull o docker build cuando la sintaxis de los nombres de imagen, banderas de volumen (-v) o variables de entorno contiene comillas mal formateadas, espacios o letras mayúsculas.
El Diagnóstico Rápido
-v "/ruta local:/ruta contenedor"El error docker: invalid reference format (o invalid reference format: repository name must be lowercase) ocurre al ejecutar comandos docker run, docker pull o docker build cuando la sintaxis de los nombres de imagen, banderas de volumen (-v) o variables de entorno contiene comillas mal formateadas, espacios o letras mayúsculas.
Solución Rápida (1 Minuto):
- Asegúrate de que el nombre de la imagen esté completamente en minúsculas (ej.
mi-app:latesten lugar deMi-App:latest).- Si usas PowerShell en Windows, usa comillas dobles
"$PWD"en lugar de'$(pwd)'.
La Solución Paso a Paso
-
1
Paso 1: Usar nombres de imagen en minúsculas
Docker impone estrictamente que los nombres de los repositorios e imágenes estén escritos en letras minúsculas:
- ❌ Incorrecto:
docker run -d MiEmpresa/Backend:v1 - ✅ Correcto:
docker run -d miempresa/backend:v1
- ❌ Incorrecto:
-
2
Paso 2: Corregir el formateo de volúmenes según tu sistema operativo
El error suele generarse al intentar montar volúmenes del sistema operativo anfitrión usando comandos copiados de tutoriales diseñados para otra terminal:
- En Linux / macOS (Bash o Zsh):
BASH
docker run -v $(pwd):/app mi-imagen:latest - En Windows PowerShell:
POWERSHELL
docker run -v "${PWD}:/app" mi-imagen:latest - En Windows CMD (Símbolo del sistema):
CMD
docker run -v "%cd%:/app" mi-imagen:latest
- En Linux / macOS (Bash o Zsh):
-
3
Paso 3: Evitar saltos de línea mal formateados en scripts
Si ejecutas un comando multilínea con barras invertidas (
\) en Linux/macOS, asegúrate de que no haya espacios en blanco ocultos después de la barra:BASH# Correcto (sin espacios despues de la barra invertida): docker run -d \ --name mi-contenedor \ -p 8080:80 \ nginx:alpine
Consejo de Prevención
Prácticas de seguridad recomendadas:
- Utiliza archivos
docker-compose.ymlen lugar de comandosdocker runmuy largos para evitar errores de sintaxis en terminales de diferentes sistemas operativos.