Comandos básicos de Docker

Completado

En las siguientes secciones se analizan los comandos básicos de Docker que necesitará para descargar una imagen e iniciar un contenedor.

Descargar una imagen

Para descargar una imagen, debe utilizar el comando docker pull, donde puede especificar el nombre de la imagen. La imagen se almacena en un repositorio, por lo que se debe proporcionar el nombre completo.

El siguiente ejemplo muestra el comando docker pull:

docker pull <image_name>

Para descargar la imagen principal de Windows Server, utilice la siguiente lógica:

docker pull mcr.microsoft.com/windows/servercore:ltsc2019

El LTSC es un canal de mantenimiento a largo plazo que (normalmente) se actualiza cada tres años. Hay una versión de LTSC para Windows Server 2016 y para Windows Server 2019, que indica la plataforma en la que quiera ejecutarlo. El sistema operativo base también será una versión de Windows Server 2019.

Hasta el verano de 2020, Microsoft proporcionó imágenes independientes para Business Central, pero desde entonces las ha reemplazado por artefactos. Las diferentes imágenes y artefactos de Business Central se explicarán en la unidad siguiente.

Con estas imágenes, es posible descargar el último espacio aislado de Business Central disponible para ejecutar en Windows Server 2019.

docker pull mcr.microsoft.com/businesscentral/sandbox:ltsc2019

La primera vez que descarga una imagen, puede tardar desde unos minutos hasta horas (dependiendo de la velocidad de su conexión). Cada imagen está formada por diferentes componentes que se pueden reutilizar al descargar otra imagen. Si otra imagen también utiliza la versión principal de Windows Server 2019, puede reutilizar el bloque que ya está descargado.

Crear un contenedor

Después de descargar la imagen, es hora de crear un contenedor. Un contenedor es una instancia de una imagen. Puede crear una imagen con el comando docker run:

docker run <image_name> --name <container_name>

Con el comando docker run, puede iniciar una nueva instancia de la imagen, proporcionada como parámetro. Puede ponerle un nombre a esta instancia con la opción --name; si no lo hace, Docker generará un nombre (que siempre será un adjetivo y el nombre de una persona, como "awesome_john"). Le recomendamos que utilice letras minúsculas para el nombre.

docker run mcr.microsoft.com/businesscentral/sandbox:ltsc2019 --name bcdev

El comando docker run acepta otras opciones distintas que no se abordarán en esta unidad. Una opción de la que deberíamos hablar es la opción -ti, que se emplea para crear un contenedor en modo interactivo. Iniciará un terminal dentro del contenedor para interactuar con el contenedor. Si pasa cmd como parámetro, lanzará un símbolo del sistema dentro del contenedor, y luego podrá interactuar mediante el uso de comandos.

docker run -ti mcr.microsoft.com/windows/servercore:ltsc2019 cmd

Mostrar contenedores

Para mostrar los contenedores en ejecución, puede utilizar el comando docker ps. Si especifica la opción -a, obtendrá una lista que mostrará todos los contenedores, incluso los que no se están ejecutando.

docker ps
docker ps -a

Cada contenedor se identifica con un id. de contenedor y un nombre. Para ejecutar otros comandos en un contenedor, puede usar el id. o el nombre. La lista también mostrará la imagen en la que se basa el contenedor.

CONTAINER ID  IMAGE                                              NAMES
321046e7faca  mcr.microsoft.com/windows/servercore:ltsc2019      awesome_john
11a1be01305d  mcr.microsoft.com/businesscentral/sandbox:ltsc2019 bcdev

Iniciar y detener un contenedor

Al trabajar con un contenedor, no necesita utilizar el comando docker run para iniciar su contenedor porque esta acción crearía un nuevo contenedor cada vez. Se inicia un contenedor mediante el comando docker start, y para detenerlo se emplea el comando docker stop.

docker start 11a1be01305d
docker stop 11a1be01305d

Eliminar un contenedor

Para eliminar un contenedor, lo que no eliminará la imagen, puede utilizar el comando docker rm. Solo puede eliminar un contenedor que no se esté ejecutando. Para eliminar un contenedor que se esté ejecutando, debe detener el contenedor con el comando docker stop y luego utilizar el comando docker rm. También puede utilizar la opción -f opción en el comando docker rm para forzar la eliminación.

docker rm 11a1

Utilizar el id. o el nombre del contenedor

El ejemplo anterior ilustraba que solo se especifica parte del id. del contenedor. En realidad, basta con especificar una parte del id. del contenedor que identificará un contenedor de forma única. Los ejemplos anteriores muestran dos contenedores, uno con el id. 321046e7faca y otro con el id. 11a1be01305d. La primera letra del id. ya es diferente entre los dos contenedores.

Puede utilizar los siguientes comandos con esta primera letra:

docker start 1
docker stop 1
docker rm 1

También puede usar el nombre en lugar del id.:

docker start bcdev
docker stop bcdev
docker rm bcdev

Usar la extensión de Docker para Visual Studio Code

Microsoft lanzó una extensión para Visual Studio Code que puede ayudarle a crear, administrar y depurar contenedores. En Visual Studio Code, puede buscar Docker en la pestaña Extensiones. Docker para Visual Studio Code.

La extensión proporciona una excelente vista general de sus imágenes, contenedores y registros. Además, con esta extensión es sencillo crear volúmenes.

Captura de pantalla de la extensión de Docker en Visual Studio Code.