Docker & Containers

comando docker runPrepara el arranque del contenedor

Configura la imagen y las asignaciones necesarias para obtener un comando para un shell POSIX.

comando docker run

Parámetros de la operación

Puertos

Montajes

Variables de entorno

Vista previa del comando

docker run \
  --detach \
  'nginx:alpine'

Salida POSIX sh para macOS, Linux o WSL. Las rutas son literales; no se expanden variables ni ~.

La configuración se procesa en este navegador. No hay conexión con Docker, consultas al registro ni ejecución.

Opciones

20 filas por grupo. CPU: 0.001–1024. Memoria: entero b/k/m/g, mínimo 6 MiB; vacío significa sin configurar.

La vista previa está actualizada.

Al combinar ejemplos de varias guías es fácil conservar un puerto antiguo o confundir una ruta del host con otra del contenedor. Este formulario de comando docker run separa cada dato para que puedas revisar la configuración antes de llevarla al terminal.

El punto de partida es nginx:alpine en segundo plano, sin publicar puertos ni imponer límites de recursos. Los campos vacíos se omiten y se conserva el arranque predeterminado de la imagen. No se inventan contraseñas, directorios ni requisitos de la aplicación.

Por qué preparar el comando docker run con un formulario

Revisar los datos antes de las comillas

El comando docker run se compone a partir de puertos, rutas y valores separados. Cada valor se convierte en un argumento, incluso si contiene espacios o apóstrofos. Al cambiar cualquier ajuste, el resultado anterior queda desactualizado y su exportación se bloquea de inmediato.

Las filas de imagen, puertos y montajes se convierten en una vista previa del comando.

Comprobar permisos y exposición

El modo privilegiado, los montajes de rutas sensibles y los puertos fuera de la interfaz de bucle local generan avisos visibles. Los valores ENV empiezan ocultos tanto en los campos como en el resultado. Debes mostrarlos antes de exportar el comando completo; ocultarlos no equivale a cifrarlos.

Variables ocultas y exportación desactivada junto a avisos sobre privilegios y montajes del host.

Tres decisiones antes de arrancar

01

Elige la dirección del host

Una fila nueva usa 127.0.0.1 y TCP. Borrar la dirección solicita todas las interfaces, no una dirección privada automática. El puerto interno debe coincidir con el servicio de la imagen aunque elijas otro número para el puerto del host.

02

Diferencia una ruta de un volumen

Selecciona bind para una ruta absoluta del host Docker y volume para almacenamiento gestionado por Docker. Los montajes nuevos son de solo lectura. Si una base de datos necesita escribir, desactiva esa opción de forma explícita tras comprobar origen y destino.

03

Agrupa cambios en modo manual

La generación automática espera 350 ms tras la última edición. Puedes apagarla y actualizar con el botón o Ctrl/Cmd+Intro. Ejemplo, vaciado y eliminación de filas muestran una vista previa; una acción de deshacer restaura los datos y el resultado. No revierte comandos ejecutados fuera de la página.

Qué expresa cada argumento

Puertos con dirección explícita

Cada fila emite --publish con IPv4, puerto del host, puerto del contenedor y TCP o UDP. Se rechazan asignaciones superpuestas del mismo puerto y protocolo. TCP y UDP pueden compartir número. El formulario no detecta si otro proceso del host ya ocupa ese puerto.

Volúmenes con tipo definido

Los bind mounts apuntan a archivos o carpetas del host; los volúmenes con nombre los administra Docker. --mount incluye el tipo y, si corresponde, readonly. No se admiten destinos internos duplicados después de normalizar la ruta, para evitar que una asignación oculte otra.

Variables de entorno literales

Se conservan espacios, signos igual, apóstrofos y dólares dentro de un único argumento. Un valor vacío produce KEY= y una clave repetida causa un error. No se leen variables del host ni se expanden expresiones como $HOME o sustituciones de comandos.

Reinicio y límites de recursos

Puedes configurar nombre, segundo plano, terminal interactivo, eliminación al salir, política de reinicio, CPU y memoria. --rm junto con una política distinta de no impide generar el resultado. Dejar un límite vacío omite el argumento; indicar una cantidad no reserva capacidad de hardware.

Formatos admitidos y límites

Un contenedor y un shell POSIX
La salida usa POSIX sh en Linux, macOS o WSL y rutas de contenedor Linux. No admite PowerShell, CMD, importar comandos, Compose, Dockerfile, flags libres ni sustituir el comando de inicio. No ejecuta Docker ni consulta registros de imágenes.
Imágenes y puertos concretos
Admite repositorios en minúsculas, registro DNS o IPv4 con puerto opcional, etiqueta y digest sha256. Excluye registros IPv6, identificadores de imagen aislados y otros algoritmos. Los puertos son enteros de 1 a 65535, sin rangos, asignación aleatoria, enlaces IPv6 ni SCTP.
Rutas de montaje sin ambigüedad
El origen bind debe ser absoluto y el destino también, pero no la raíz. Se rechazan comas, comillas dobles, barras inversas, controles y segmentos . o ... Se conservan espacios y apóstrofos. El nombre del volumen tiene 2–255 letras, dígitos, puntos, guiones o guiones bajos y empieza con letra o dígito.
Presupuestos de entrada
Cada grupo admite 20 filas. Un texto acepta 4096 unidades UTF-16 y el conjunto 65536. CPU permite 0.001–1024 con hasta tres decimales; memoria usa un entero y un sufijo opcional b/k/m/g, como mínimo 6 MiB y como máximo un número de bytes de 64 bits con signo. Los excesos no se recortan en silencio.
Ocultar no es gestionar secretos
Mientras los valores ENV estén ocultos, no se puede copiar ni descargar el resultado que los contiene. Al mostrarlos, el script exportado incluye los valores reales, que luego pueden aparecer en el historial del shell o en la inspección del contenedor. Nombres y rutas no se clasifican automáticamente como secretos.
Avisos sin inspección del host
Se señalan rutas raíz, del sistema y de usuarios, pero no se resuelven enlaces simbólicos. Un socket Docker requiere atención incluso con solo lectura. Debes comprobar archivos, permisos, contenido de la imagen y soporte de límites del kernel en el host real.

Preguntas sobre el comando docker run

¿Cómo manejar variables de entorno en docker?

Para establecer valores al arrancar el contenedor, añade una fila por variable con su nombre y valor. Cada fila genera --env. Esto no cambia las instrucciones ENV del Dockerfile ni lee un archivo .env. Los valores quedan ocultos hasta que permitas mostrarlos y exportarlos.

¿Cómo agregar varios puertos al mismo contenedor de Docker?

Añade una fila por puerto, con el número del host y el número interno en sus campos respectivos. Puedes usar hasta 20 filas y elegir TCP o UDP en cada una. Se rechazan solapamientos del mismo protocolo y puerto del host, incluidos los que usan todas las interfaces.

¿Cómo pasar una variable de entorno con espacios a Docker?

Escribe el valor sin comillas adicionales de shell. El argumento KEY=value completo recibe las comillas necesarias para conservar espacios y signos igual. $HOME permanece como texto literal. Los saltos de línea y los caracteres de control se rechazan.

¿Se pueden definir --rm y --restart en un Dockerfile?

Son opciones de ejecución de docker run, no instrucciones Dockerfile. Un servicio con reinicio debe conservar el contenedor al salir. Para una tarea temporal con --rm, elige no como política de reinicio. El formulario bloquea la combinación incompatible.

¿Qué diferencia hay entre los volúmenes de Docker y los bind mounts?

Docker administra el volumen con nombre, mientras que un bind mount enlaza una ubicación concreta del host. Si permites escritura, el contenedor puede modificar archivos de ese host. Con --mount, un origen bind inexistente suele causar un error; esta página no puede verificar si existe.

¿La vista previa difiere de la documentación de Docker?

Comprueba el resultado antes de copiar

Prepara el comando docker run, resuelve los errores y revisa los avisos. Confirma la configuración del host donde lo ejecutarás antes de guardar el script.