Si eres nuevo en el mundo de los contenedores y Docker y trabajas principalmente en Windows, te espera una sorpresa. En este artículo, aprenderás cómo configurar Docker en Windows 10 utilizando Docker Desktop for Windows o simplemente conocido como Docker Desktop en este artículo.
Docker Desktop incluye el Motor Docker y un cliente de gestión empaquetados juntos para facilitar su uso en Windows 10. En este artículo, instalarás Docker Desktop, desplegarás tu primer contenedor y compartirás datos entre tu host y tus contenedores.
Requisitos previos para Docker en Windows
Este es un artículo paso a paso que demuestra varios pasos en Docker Desktop para Docker en Windows. Para seguirlo, asegúrate de tener algunos requisitos específicos en su lugar primero.
- Una conexión a Internet para descargar más de 800 MB de datos
- Windows 10 de 64 bits en las ediciones Pro, Enterprise o Education con la versión 1703 o más reciente. Esto es necesario para ejecutar Hyper-V en Windows 10.
- A CPU with SLAT (nested paging) compatibility. All AMD/Intel processors since approximately 2008 are SLAT compatible
- Al menos 4 GB de RAM
- La virtualización de hardware en la BIOS, a veces etiquetada como Tecnología de Virtualización o VTx. Esto debe estar habilitado y mostrarse como Habilitado en la pestaña de rendimiento del Administrador de tareas, como se muestra a continuación.

Descarga e instalación de Docker Desktop
Primero, necesitas descargar e instalar Docker Desktop para utilizar Docker en Windows. Docker Desktop está disponible en dos versiones: una versión estable y una versión de prueba.
La versión estable se publica trimestralmente y garantiza una aplicación completamente probada. En este artículo, utilizarás la versión estable.
Advertencia: Al instalar Docker Desktop, te pedirá que instales el hipervisor Hyper-V si aún no está instalado. Al hacerlo, el hipervisor Hyper-V impide que se ejecuten máquinas virtuales de invitado con hipervisores en modo de usuario como VirtualBox, VMWare, etc. El soporte de Hyper-V para VirtualBox y VMWare es limitado pero está en desarrollo.
También tienes la opción de descargar Docker Desktop directamente desde Docker.com o a través del administrador de paquetes de Windows, Chocolatey. Veamos brevemente cada método.
Desde Docker.com
Para descargar Docker Desktop directamente desde docker.com, puedes ir a la página del producto, registrarte para obtener una cuenta y descargarlo desde allí. Esto es preferible si tienes la intención de utilizar Docker en producción registrando una cuenta.
Sin embargo, si solo estás probando Docker por primera vez, también puedes descargarlo directamente, lo cual es mucho más fácil.
Una vez que se haya descargado el archivo EXE, ejecuta el ejecutable y sigue los pasos aceptando todos los valores predeterminados.
Cuando se te pregunte si planeas Usar contenedores de Windows en lugar de contenedores de Linux, como se muestra a continuación, no habilites la casilla de verificación. Estarás utilizando contenedores de Linux en este artículo.

Una vez completada la instalación, reinicia tu computadora.
Seleccionar la opción de usar contenedores de Windows o contenedores de Linux indica a Docker que adjunte imágenes a un kernel de Windows o a un kernel de Linux. Puedes cambiar esta configuración en cualquier momento después de la instalación haciendo clic con el botón derecho en el icono de Docker en la bandeja del sistema y seleccionando Cambiar a contenedores de Windows, como se muestra a continuación.

Usando Chocolatey
La otra opción para descargar e instalar Docker Desktop es mediante Chocolatey. Chocolatey automatiza muchas de las tareas de descarga e instalación por ti. Para hacerlo, abre una consola de línea de comandos (ya sea cmd o PowerShell) como administrador para descargar e instalar el programa de una vez ejecutando el siguiente comando.
Una vez completado, reinicia Windows 10.
Si deseas probar la versión de prueba en algún momento, puedes descargar e instalarla ejecutando
choco install docker-desktop --pre
.
Validación de la Instalación de Docker Desktop
Una vez instalado, Docker Desktop se ejecuta automáticamente como un servicio proporcionando Docker en Windows. Se muestra en la bandeja del sistema cuando inicias sesión en Windows después de reiniciar. Pero, ¿cómo sabes realmente que está funcionando?
Para validar que Docker Desktop está funcionando correctamente, abre una consola de línea de comandos y ejecuta el comando docker
. Si la instalación fue exitosa, verás una referencia de comando de Docker.
Finalmente, haz que Docker descargue y ejecute una imagen de contenedor de ejemplo llamada hello-world ejecutando el comando docker run hello-world
. Si todo está bien, verás una salida como la siguiente.

Ejecución de Comandos en Contenedores Docker
Docker Desktop está instalado y has verificado que todo está bien? ¿Y ahora qué? Para empezar con Docker en Windows, una tarea común que puedes realizar en un contenedor de Docker es ejecutar comandos. A través del comando docker run
, puedes enviar comandos a través del host (tu PC con Windows 10) directamente a un contenedor en ejecución.
Para ejecutar comandos en un contenedor con docker run
, primero especificarás un nombre de imagen seguido del comando. Para comenzar, dile a Docker que ejecute el comando hostname
dentro de un contenedor llamado alpine, como se ve a continuación.
Dado que no tienes la imagen de Docker alpine en tu computadora en este momento, Docker en Windows descargará la pequeña imagen desde Docker Hub, iniciará un contenedor a partir de esa imagen y enviará el comando directamente al contenedor, cerrándolo todo de una vez.
Si deseas que el contenedor siga en ejecución, también puedes usar el parámetro -it
. Este parámetro le indica a Docker que mantenga el contenedor en “modo interactivo”, dejándolo en ejecución en primer plano después de ejecutar el comando. Verás que luego se te presenta un indicador de terminal listo para usar.
Cuando hayas terminado en la terminal, escribe exit
para volver a Windows 10.
Acceder a archivos desde el host de Docker en contenedores.
Otra tarea común es acceder a los archivos del host desde los contenedores. Para acceder a los archivos del host en los contenedores, Docker en Windows te permite vincular una ruta de carpeta desde tu escritorio para compartir esa carpeta con tu contenedor. Este proceso se llama vinculación.
Para crear una vinculación, haz una carpeta en una unidad local. Para este ejemplo, usaré E:\ y la llamaré input. Luego se creará un nuevo documento de texto llamado file.txt en la carpeta. Siéntete libre de usar la ruta y el archivo que desees.
Una vez que tengas la carpeta que deseas compartir entre el host y el contenedor, Docker necesita montar la carpeta usando el parámetro --mount
. El parámetro --mount
requiere tres argumentos: un tipo de montaje, una ruta de directorio de origen del host y una ruta de directorio de destino. La ruta de destino será un enlace simbólico dentro del contenedor.
A continuación, verás un ejemplo de montaje de toda la E:\ dentro del host de Windows 10 para que aparezca como el directorio /home/TEST dentro del contenedor de Linux.
Cuando intentes montar una carpeta del host, Docker Desktop te pedirá permiso para compartir esta unidad con los contenedores Docker como se muestra a continuación.

Si creaste el archivo file.txt en la carpeta de Windows 10 como se describió anteriormente, ejecuta cat /home/TEST/input/file.txt
. Verás que se muestran los contenidos.
Ahora, elimina la carpeta input que acabas de crear y vuelve a ejecutar el comando cat ...
de nuevo. Observa que la terminal ahora informa que el archivo ya no existe.

Mapeo de Puertos de Red
Otro concepto importante de conocer es cómo Docker en Windows maneja la red. Para una breve introducción, veamos qué se necesita para acceder a un servicio web que se ejecuta en un contenedor desde el host local.
Primero, inicia una imagen de demostración que ejecutará una página web de ejemplo. Descarga y ejecuta la imagen de Docker llamada dockersamples/static-site. Utilizarás docker container run
para hacerlo.
El siguiente comando realiza cuatro acciones a la vez:
- Descarga una imagen de Docker desde Docker Hub llamada static-site en el “directorio” docker-samples
- Inicia una instancia de contenedor desde la imagen static-site
- Desconecta inmediatamente el contenedor del primer plano de la terminal (
--detach
) - Hace que los puertos de red del contenedor en ejecución sean accesibles para el host de Windows 10 (
--publish-all
)
Una vez ejecutado, Docker devolverá el ID del contenedor que se inició, como se muestra a continuación.

Publicación de Puertos de Red
Desde que se utiliza el parámetro --publish-all
, los puertos locales del host ahora se asignan a la pila de red del contenedor. Puedes usar el subcomando docker ps
para listar todos los contenedores en ejecución, incluidos los puertos asignados a cada uno de ellos. En el ejemplo a continuación, un contenedor está en ejecución mapeando el puerto del host 32777 al puerto del contenedor 80 y el puerto del host 32776 al puerto del contenedor 443.

Docker en Windows asigna puertos aleatorios a los contenedores al utilizar el parámetro --publish-all
a menos que se definan explícitamente.
Ahora abre un navegador web y navega a http://localhost:32777 o al puerto que Docker haya asignado para mapear al puerto 80 según lo indicado por docker ps
. Si todo va bien, deberías ver la página web que se muestra a continuación.

Cambiando los Puertos Publicados
Ahora tienes un contenedor Docker en ejecución en Docker en Windows que sirve una página web simple. ¡Felicidades! Pero ahora necesitas especificar una vinculación de puerto específica sin depender de la selección de puerto aleatorio con --publish-all
. No hay problema. Usa el parámetro -p
.
Primero, detén el contenedor en ejecución especificando una cadena única de su ID de contenedor. Puedes encontrar este ID de contenedor ejecutando docker ps
. Una vez que conozcas el ID del contenedor, detén el contenedor y comienza uno nuevo mientras designas a Docker asignar un puerto específico para publicar.
El sintaxis para especificar un puerto es <puerto externo>:<puerto del contenedor>
. Para cada puerto que desees publicar, utiliza el interruptor --publish
o -p
con los números de puerto externo y del contenedor como se muestra a continuación.
Cuando especificas un ID de contenedor, solo necesitas escribir lo suficiente del ID como para que sea único. Si solo estás ejecutando un único contenedor y su ID es
f766f4ac8d66bf7
, puedes identificar el contenedor usando cualquier cantidad de caracteres, incluido solof
. El requisito es que lo que escribas permita identificar de manera única un único contenedor.
Ahora ve a tu navegador web y navega a localhost:1337
. Recuerda, no estás cambiando la imagen y siempre está escuchando en el puerto 80; estás cambiando la regla de traducción de puerto en la configuración de Docker que te permite conectarte al contenedor.

Deteniendo todos los contenedores
Usando docker stop
, puedes detener un contenedor, pero ¿cómo detienes varios contenedores a la vez? Una forma de hacerlo es proporcionando múltiples IDs de contenedor separados por espacios. A continuación, puedes ver un ejemplo de cómo detener tres contenedores con los IDs fd50b0a446e7
, 36ee57c3b7da
y 7c45664906ff.
Si estás gestionando contenedores Docker en PowerShell, también puedes utilizar un atajo para detener todos los contenedores. Alimenta una lista de IDs de contenedores a través de
docker ps -q
al parámetro stop mediante la expansión de comandos de PowerShelldocker stop (docker ps -q)
.
Confirma que todos los contenedores están detenidos al no ver ningún contenedor listado cuando escribes docker ps
.
Limpieza
Has descargado algunas imágenes de contenedores y ejecutado algunos contenedores que ahora están detenidos. Aunque estén detenidos, su almacenamiento asignado no ha desaparecido del disco local del host. Debes eliminar los contenedores para liberar ese espacio y evitar desordenar tu espacio de trabajo.
Para eliminar un solo contenedor, utiliza el parámetro de eliminación de contenedor rm
como se muestra a continuación.
O, para eliminar todos los contenedores detenidos, utiliza el parámetro prune
como se muestra a continuación.