

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Cree y pruebe imágenes de Docker para los servicios de contenedores de Lightsail
<a name="amazon-lightsail-creating-container-images"></a>

Con Docker, puede crear, ejecutar, probar e implementar aplicaciones distribuidas basadas en contenedores. Los servicios de contenedor de Amazon LightSail utilizan imágenes de contenedor Docker en implementaciones para lanzar contenedores.

En esta guía, le mostramos cómo crear una imagen de contenedor en la máquina local utilizando Dockerfile. Una vez creada la imagen, puede insertarla en el servicio de contenedor de Lightsail para implementarla.

Para completar los procedimientos de esta guía, debe tener un conocimiento básico de Docker y cómo funciona. Para obtener más información sobre Docker, consulte [¿Qué es Docker?](https://aws.amazon.com/docker/) y la [descripción de Docker](https://docs.docker.com/get-started/overview/).

**Contenido**
+ [Paso 1: completar los requisitos previos](#create-container-image-prerequisite)
+ [Paso 2: crear un Dockerfile y compilar una imagen de contenedor](#create-container-image-create-dockerfile)
+ [Paso 3: ejecutar la nueva imagen de contenedor](#create-container-image-run-container)
+ [(Opcional) Paso 4: limpiar los contenedores que se ejecutan en la máquina local](#create-container-image-cleanup)
+ [Pasos siguientes a la creación de imágenes de contenedor](#create-container-image-next-steps)

## Paso 1: completar los requisitos previos
<a name="create-container-image-prerequisite"></a>

Antes de comenzar, debe instalar el software necesario para crear contenedores y luego insertarlos en el servicio de contenedor de Lightsail. Por ejemplo, debe instalar y utilizar Docker para crear y compilar las imágenes de contenedor que luego puede utilizar con su servicio de contenedor de Lightsail. Para obtener más información, consulte [Instalación de software para administrar imágenes de contenedor de Amazon Lightsail](amazon-lightsail-install-software.md).

## Paso 2: crear un Dockerfile y compilar una imagen de contenedor
<a name="create-container-image-create-dockerfile"></a>

Complete el siguiente procedimiento para crear un Dockerfile y compilar una imagen de contenedor de Docker `mystaticwebsite` a partir de él. La imagen del contenedor será para un sitio web estático simple alojado en un servidor web Apache en Ubuntu.

1. Cree una carpeta `mystaticwebsite` en su máquina local donde almacenará su Dockerfile.

1. Cree un Dockerfile en la carpeta que acaba de crear.

   Dockerfile no utiliza una extensión de archivo, como `.TXT`. El nombre de archivo es `Dockerfile`.

1. Copie uno de los siguientes bloques de código en función de cómo desee configurar la imagen de contenedor y péguela en el Dockerfile:
   + **Si desea crear una imagen simple de contenedor de sitio web estático con un mensaje de Hola mundo**, copie el siguiente bloque de código y péguelo en el Dockerfile. En este ejemplo de código se utiliza la imagen Ubuntu 18.04. Las instrucciones `RUN` actualizan las cachés de los paquetes, instalan y configuran Apache, e imprimen un mensaje de Hola mundo en la raíz de documentos del servidor web. El folleto `EXPOSE` expone el puerto 80 en el contenedor y las instrucciones `CMD` inician el servidor web.

     ```
     FROM ubuntu:18.04
     
     # Install dependencies
     RUN apt-get update && \
      apt-get -y install apache2
     
     # Write hello world message
     RUN echo 'Hello World!' > /var/www/html/index.html
     
     # Open port 80
     EXPOSE 80
     
     # Start Apache service
     CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
     ```
   + **Si desea usar su propio conjunto de archivos HTML para la imagen de contenedor de sitio web estático**, cree una carpeta `html` en la misma carpeta donde almacena el Dockerfile. A continuación, coloque sus archivos HTML en esa carpeta.

     Cuando los archivos HTML estén en la carpeta `html`, copie el siguiente bloque de código y péguelo en el Dockerfile. En este ejemplo de código se utiliza la imagen Ubuntu 18.04. Las instrucciones `RUN` actualizan las cachés de paquete e instala y configura Apache. La instrucción `COPY` copia el contenido de la carpeta html en la raíz de documentos del servidor web. El folleto `EXPOSE` expone el puerto 80 en el contenedor y las instrucciones `CMD` inician el servidor web.

     ```
     FROM ubuntu:18.04
     
     # Install dependencies
     RUN apt-get update && \
      apt-get -y install apache2
     
     # Copy html directory files
     COPY html /var/www/html/
     
     # Open port 80
     EXPOSE 80
     
     CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
     ```

1. Abra una ventana de símbolo del sistema o terminal y cambie el directorio a la carpeta en la que está almacenando el Dockerfile.

1. Ingrese el siguiente comando para compilar la imagen de contenedor utilizando Dockerfile en la carpeta. Este comando crea una nueva imagen de contenedor Docker llamada `mystaticwebsite`.

   ```
   docker build -t mystaticwebsite .
   ```

   Debería ver un mensaje que confirma que la imagen se ha compilado correctamente.

1. Ingrese el siguiente comando para ver las imágenes de contenedor en la máquina local.

   ```
   docker images --filter reference=mystaticwebsite
   ```

   Debería ver un resultado similar al del siguiente ejemplo, que muestra la nueva imagen de contenedor creada.  
![\[Resultado del comando de imágenes de Docker\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/docker-images-command-result.png)

   La imagen de contenedor recién compilada está lista para probarse usándola para ejecutar un nuevo contenedor en la máquina local. Continúe en la siguiente sección, [Paso 3: ejecutar la nueva imagen de contenedor](#create-container-image-run-container), de esta guía.

## Paso 3: ejecutar la nueva imagen de contenedor
<a name="create-container-image-run-container"></a>

Siga los pasos que se indican a continuación para ejecutar la nueva imagen de contenedor que creó.

1. En una ventana de símbolo del sistema o terminal, ingrese el siguiente comando para ejecutar la imagen de contenedor que compiló en la sección anterior [Paso 2: crear un Dockerfile y compilar una imagen de contenedor](#create-container-image-create-dockerfile) de esta guía. La opción `-p 8080:80` asigna el puerto 80 expuesto en el contenedor al puerto 8080 de la máquina local. La opción `-d` especifica que el contenedor debe ejecutarse en modo desconectado.

   ```
   docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest
   ```

1. Ingrese el siguiente comando para ver los contenedores en ejecución.

   ```
   docker container ls -a
   ```

   Debería ver un resultado similar al del siguiente ejemplo, que muestra e nuevo contenedor en ejecución.  
![\[Resultado del comando de contenedor de Docker\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Para confirmar que el contenedor está en funcionamiento, abra una nueva ventana del navegador y vaya a `http://localhost:8080`. Debería ver un mensaje similar al del siguiente ejemplo. Esto confirma que el contenedor está en funcionamiento en la máquina local.  
![\[Sitio web estático que se ejecuta en un contenedor Docker\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/container-mystaticsite-hello-world.png)

   La imagen de contenedor recién compilada está lista para insertarse en la cuenta de Lightsail para que pueda implementarla en el servicio de contenedor de Lightsail. Para obtener más información, consulte [Inserción y administración de imágenes de contenedor en los servicios de contenedor de Amazon Lightsail](amazon-lightsail-pushing-container-images.md).

## (Opcional) Paso 4: limpiar los contenedores que se ejecutan en la máquina local
<a name="create-container-image-cleanup"></a>

Ahora que ha creado una imagen de contenedor que puede insertar en el servicio de contenedor de Lightsail, es hora de limpiar los contenedores que se ejecutan en la máquina local como resultado de seguir los procedimientos de esta guía.

Complete los pasos siguientes para limpiar los contenedores que se ejecutan en la máquina local:

1. Ejecute el siguiente comando para ver los contenedores que se ejecutan en la máquina local.

   ```
   docker container ls -a
   ```

   Debería ver un resultado similar al que se muestra a continuación, que enumera los nombres de los contenedores que se ejecutan en la máquina local.  
![\[Resultado del comando de contenedor de Docker\]](http://docs.aws.amazon.com/es_es/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Ejecute el siguiente comando para quitar el contenedor en ejecución creado anteriormente en esta guía. Esto obliga al contenedor a detenerse y lo elimina permanentemente.

   ```
   docker container rm <ContainerName> --force
   ```

   En el comando, sustituya < ContainerName > por el nombre del contenedor que desee detener y elimínelo.

   Ejemplo:

   ```
   docker container rm mystaticwebsite --force
   ```

   Ahora se debe eliminar el contenedor que se creó como resultado de esta guía.

## Pasos siguientes a la creación de imágenes de contenedor
<a name="create-container-image-next-steps"></a>

Después de crear las imágenes de contenedor, insértelas en el servicio de contenedor de LightSail cuando esté listo para implementarlas. Para obtener más información, consulte [Administrar imágenes del servicio de contenedores de Lightsail](amazon-lightsail-pushing-container-images.md).

**Topics**
+ [Paso 1: completar los requisitos previos](#create-container-image-prerequisite)
+ [Paso 2: crear un Dockerfile y compilar una imagen de contenedor](#create-container-image-create-dockerfile)
+ [Paso 3: ejecutar la nueva imagen de contenedor](#create-container-image-run-container)
+ [(Opcional) Paso 4: limpiar los contenedores que se ejecutan en la máquina local](#create-container-image-cleanup)
+ [Pasos siguientes a la creación de imágenes de contenedor](#create-container-image-next-steps)
+ [Administrar imágenes de contenedor](amazon-lightsail-pushing-container-images.md)
+ [Instalación del complemento de servicios de contenedor](amazon-lightsail-install-software.md)
+ [Acceso al repositorio privado de ECR](amazon-lightsail-container-service-ecr-private-repo-access.md)