Cómo usar el comando docker desktop engine use para cambiar tipos de contenedores

DockerDockerBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás a utilizar el comando docker desktop engine use para cambiar entre tipos de contenedores. Comenzarás comprendiendo el propósito del motor de Docker (Docker engine) y cómo verificar el tipo de contenedor actual.

Posteriormente, explorarás cómo cambiar a contenedores Windows (en sistemas Windows) y luego volver a contenedores Linux. Este laboratorio proporcionará experiencia práctica en la gestión de entornos de contenedores utilizando la CLI de Docker.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") docker/SystemManagementGroup -.-> docker/info("Display System-Wide Information") subgraph Lab Skills docker/run -.-> lab-555142{{"Cómo usar el comando docker desktop engine use para cambiar tipos de contenedores"}} docker/pull -.-> lab-555142{{"Cómo usar el comando docker desktop engine use para cambiar tipos de contenedores"}} docker/info -.-> lab-555142{{"Cómo usar el comando docker desktop engine use para cambiar tipos de contenedores"}} end

Comprender el propósito de docker desktop engine use

En este paso, entenderemos el propósito del motor de Docker (Docker engine). Docker es una plataforma que permite automatizar el despliegue, escalado y gestión de aplicaciones mediante contenedores. Un contenedor es una unidad estándar de software que empaqueta código y todas sus dependencias para que la aplicación se ejecute de manera rápida y confiable en diferentes entornos computacionales.

El motor de Docker es el componente central de Docker. Es una aplicación cliente-servidor con estos componentes principales:

  • Un servidor que es un programa de larga duración llamado proceso demonio (el comando dockerd).
  • Una API REST que define interfaces para que los programas interactúen con el demonio y le indiquen qué hacer.
  • Un cliente de interfaz de línea de comandos (CLI) (el comando docker).

La CLI utiliza la API REST para controlar el demonio de Docker mediante scripts o comandos directos. Muchas otras aplicaciones de Docker utilizan esta API subyacente y la CLI.

En el entorno de LabEx, el motor de Docker ya está instalado y en ejecución. Puedes verificarlo ejecutando el comando docker info. Este comando muestra información general sobre la instalación de Docker.

docker info

Deberías ver una salida similar a esta, que muestra detalles sobre la versión de Docker, el controlador de almacenamiento y otra información.

Client:
 Version:           20.10.21
 API version:       1.41
 Go version:        go1.18.9
 Git commit:        baeda1f
 Built:             Tue Oct 25 18:01:17 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.21
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.18.9
  Git commit:       305620d
  Built:            Tue Oct 25 17:59:50 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.10
  GitCommit:        b34a5c8e5367b9d7e345e9371193898cdce23f40
 runc:
  Version:          1.1.4
  GitCommit:        v1.1.4-0-g5fd4c4d
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0
 ... (más salida)

Esta salida confirma que el motor de Docker está en ejecución y proporciona detalles sobre su configuración. Comprender el motor de Docker es el primer paso para trabajar con contenedores.

Verificar el tipo de contenedor actual

En este paso, verificaremos el tipo de contenedor actual soportado por el motor de Docker en el entorno LabEx. Docker puede ejecutar diferentes tipos de contenedores dependiendo del sistema operativo subyacente. En Linux, Docker ejecuta principalmente contenedores Linux. En Windows, Docker Desktop permite cambiar entre contenedores Linux y Windows.

En el entorno LabEx, estás ejecutando una máquina virtual Linux. Por lo tanto, el motor de Docker está configurado para ejecutar contenedores Linux. Puedes confirmar esto examinando nuevamente la salida del comando docker info. Busca el campo OSType.

docker info

En la salida, deberías ver una línea similar a esta:

OSType: linux

Esto indica que el motor de Docker está actualmente configurado para ejecutar contenedores Linux. Este es el comportamiento predeterminado y esperado en un sistema Linux.

Para ilustrarlo mejor, intentemos ejecutar un contenedor Linux simple. Usaremos la imagen hello-world, que es una imagen muy pequeña que simplemente imprime un mensaje y finaliza. Primero, necesitamos descargar la imagen a nuestra máquina local.

docker pull hello-world

Deberías ver una salida que indica que la imagen está siendo descargada.

Using default tag: latest
latest: Pulling from library/hello-world
2db29710123e: Pull complete
Digest: sha256:f5233545e4356188889a389e18b407cd9f61f46056b1e172b338cd91f09e9e4c
Status: Downloaded newer image for hello-world:latest
docker.io/library/hello-world:latest

Ahora, ejecuta el contenedor usando el comando docker run.

docker run hello-world

Deberías ver una salida similar a esta, que es el mensaje impreso por el contenedor hello-world.

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub
    (assuming it was not already locally available).
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Esto confirma que puedes ejecutar contenedores Linux exitosamente en este entorno.

Cambiar a contenedores Windows (solo Windows)

En este paso, discutiremos cómo cambiar a contenedores Windows. Nota importante: este paso solo es aplicable si estás ejecutando Docker Desktop en un sistema operativo Windows. El entorno LabEx es una máquina virtual Linux, por lo que no puedes realizar este cambio aquí. Sin embargo, entender este concepto es importante si trabajas con Docker en Windows.

En Windows, Docker Desktop ejecuta por defecto una pequeña máquina virtual Linux para alojar el motor Docker y ejecutar contenedores Linux. Esto se debe a que el núcleo del motor Docker fue diseñado originalmente para Linux. Sin embargo, Windows también soporta la ejecución de contenedores Windows nativos.

Si estuvieras en una máquina Windows con Docker Desktop instalado, normalmente cambiarías a contenedores Windows haciendo clic derecho en el icono de Docker en la bandeja del sistema y seleccionando "Switch to Windows containers". Esta acción reconfiguraría el demonio Docker para usar el entorno de ejecución de contenedores Windows en lugar de la máquina virtual Linux.

Una vez cambiado a contenedores Windows, podrías descargar y ejecutar imágenes construidas para Windows, como mcr.microsoft.com/windows/nanoserver.

Por ejemplo, en una máquina Windows después del cambio, podrías ejecutar:

docker pull mcr.microsoft.com/windows/nanoserver
docker run mcr.microsoft.com/windows/nanoserver cmd /c echo Hello from Windows Container!

La salida sería:

Hello from Windows Container!

Como estás en un entorno Linux, intentar descargar o ejecutar imágenes de contenedores Windows fallará. El motor Docker en esta máquina virtual Linux no es capaz de ejecutar contenedores Windows.

Demostremos esto intentando descargar una imagen Windows:

docker pull mcr.microsoft.com/windows/nanoserver

Es probable que veas un mensaje de error indicando que la imagen no se encuentra o no puede descargarse, ya que el demonio Docker busca una imagen Linux con ese nombre.

Using default tag: latest
Error response from daemon: manifest for mcr.microsoft.com/windows/nanoserver:latest not found: manifest unknown: manifest unknown

Esto confirma que el entorno actual está configurado para contenedores Linux y no puede ejecutar contenedores Windows.

Por lo tanto, no hay comandos prácticos para ejecutar en este entorno LabEx para cambiar a contenedores Windows. Este paso sirve como información conceptual para usuarios que podrían trabajar con Docker en Windows.

Volver a contenedores Linux (solo Windows)

En este paso, discutiremos cómo volver a contenedores Linux. Al igual que en el paso anterior, esto solo es relevante si estás usando Docker Desktop en un sistema operativo Windows. En el entorno Linux de LabEx, ya estás usando contenedores Linux, por lo que no se requiere ninguna acción para volver a cambiarlos.

En una máquina Windows donde hayas cambiado previamente a contenedores Windows, volverías a contenedores Linux haciendo clic derecho en el icono de Docker en la bandeja del sistema y seleccionando "Switch to Linux containers". Esta acción detendría el entorno de ejecución de contenedores Windows y reiniciaría la máquina virtual Linux que aloja el motor Docker para contenedores Linux.

Después de volver a contenedores Linux en una máquina Windows, podrías nuevamente descargar y ejecutar imágenes de contenedores Linux, como la imagen ubuntu.

Por ejemplo, en una máquina Windows después de volver a cambiarlo, podrías ejecutar:

docker pull ubuntu
docker run ubuntu echo Hello from Linux Container!

La salida sería:

Hello from Linux Container!

Como estás en un entorno Linux, ya estás usando contenedores Linux. Puedes confirmar esto nuevamente verificando el OSType en la salida de docker info.

docker info

Como se vio en el Paso 2, la salida mostrará:

OSType: linux

Esto confirma que el motor Docker en este entorno LabEx está configurado para ejecutar contenedores Linux, y no se necesita ninguna acción para volver a cambiarlo.

Por lo tanto, no hay comandos prácticos para ejecutar en este entorno LabEx para volver a contenedores Linux. Este paso, al igual que el anterior, proporciona información conceptual para usuarios que podrían trabajar con Docker en Windows.

Resumen

En este laboratorio, comenzamos comprendiendo el propósito del motor Docker, que es el componente principal de la plataforma Docker para la contenerización. Aprendimos que el motor Docker consta de un proceso demonio, una API REST y una interfaz de línea de comandos (CLI). Verificamos la instalación de Docker y su estado de ejecución utilizando el comando docker info, que proporcionó información detallada del sistema sobre el entorno Docker.

Tras esta comprensión inicial, procedimos a verificar el tipo de contenedor actual que utiliza el motor Docker. Para usuarios de Windows, el laboratorio nos guió a través del proceso de cambiar el tipo de contenedor a contenedores Windows y posteriormente volver a contenedores Linux, demostrando cómo gestionar diferentes entornos de contenedores dentro de Docker Desktop.