

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.

# Docker en una muestra de imagen personalizada para CodeBuild
<a name="sample-docker-custom-image"></a>

En el siguiente ejemplo, se crea y ejecuta una imagen de Docker mediante AWS CodeBuild una imagen de compilación de Docker personalizada (`docker:dind`en Docker Hub). 

Para aprender a crear una imagen de Docker utilizando en su lugar una imagen de compilación proporcionada por CodeBuild el soporte de Docker, consulta nuestra. [Ejemplo de publicación de una imagen de Docker en Amazon ECR](sample-docker.md)

**importante**  
Si ejecutas este ejemplo, es posible que se te cobren cargos en tu cuenta. AWS Estos incluyen posibles cargos por CodeBuild y por AWS los recursos y acciones relacionados con Amazon S3 y CloudWatch Logs. AWS KMS Para obtener más información, consulte [CodeBuild precios](https://aws.amazon.com/codebuild/pricing), [precios de Amazon S3](https://aws.amazon.com/s3/pricing), [AWS Key Management Service precios](https://aws.amazon.com/kms/pricing) y [ CloudWatchprecios de Amazon](https://aws.amazon.com/cloudwatch/pricing).

**Topics**
+ [Ejecución del ejemplo de Docker en una imagen personalizada](#sample-docker-custom-image-running)

## Ejecución del ejemplo de Docker en una imagen personalizada
<a name="sample-docker-custom-image-running"></a>

Utilice el siguiente procedimiento para ejecutar el ejemplo de Docker en una imagen personalizada. Para obtener más información sobre este ejemplo, consulte [Docker en una muestra de imagen personalizada para CodeBuild](#sample-docker-custom-image).

**Para ejecutar el ejemplo de Docker en una imagen personalizada**

1. Cree los archivos tal y como se describe en las [Archivos](#sample-docker-custom-image-files) secciones [Estructura de directorios](#sample-docker-custom-image-dir) y de este tema y, a continuación, cárguelos en un depósito de entrada de S3 o en un AWS CodeCommit repositorio de Bitbucket. GitHub 
**importante**  
No cargue `(root directory name)`, solo los archivos incluidos en `(root directory name)`.   
Si utiliza un bucket de entrada de S3, no olvide crear un archivo ZIP que contenga los archivos y cárguelo en el bucket de entrada. No añada `(root directory name)` al archivo ZIP, solo los archivos incluidos en `(root directory name)`.

1. Cree un proyecto de compilación, ejecute la compilación y vea la información de compilación relacionada.

   Si utilizas el AWS CLI para crear el proyecto de compilación, la entrada del `create-project` comando con formato JSON podría tener un aspecto similar al siguiente. (Sustituya los marcadores de posición por sus propios valores).

   ```
   {
     "name": "sample-docker-custom-image-project",
     "source": {
       "type": "S3",
       "location": "codebuild-region-ID-account-ID-input-bucket/DockerCustomImageSample.zip"
     },
     "artifacts": {
       "type": "NO_ARTIFACTS"
     },
     "environment": {
       "type": "LINUX_CONTAINER",
       "image": "docker:dind",
       "computeType": "BUILD_GENERAL1_SMALL",
       "privilegedMode": false
     },
     "serviceRole": "arn:aws:iam::account-ID:role/role-name",
     "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID"
   }
   ```
**nota**  
De forma predeterminada, el daemon de Docker está habilitado para compilaciones sin VPC. Si quiere usar contenedores de Docker para las compilaciones de VPC, consulte [Runtime Privilege and Linux Capabilities](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) en el sitio web de Docker Docs y habilite el modo privilegiado. Además, Windows no admite el modo privilegiado.

1. Para ver los resultados de compilación, busque en el log de la compilación la cadena `Hello, World!` Para obtener más información, consulte [Ver detalles de las compilaciones](view-build-details.md).

### Estructura de directorios
<a name="sample-docker-custom-image-dir"></a>

En este ejemplo se presupone que existe esta estructura de directorios.

```
(root directory name)
├── buildspec.yml
└── Dockerfile
```

### Archivos
<a name="sample-docker-custom-image-files"></a>

La imagen base del sistema operativo utilizado en este ejemplo es Ubuntu. El ejemplo usa los siguientes archivos.

`buildspec.yml` (in `(root directory name)`)

```
version: 0.2

phases:
  pre_build:
    commands:
      - docker build -t helloworld .
  build:
    commands:
      - docker images
      - docker run helloworld echo "Hello, World!"
```

`Dockerfile` (in `(root directory name)`)

```
FROM maven:3.3.9-jdk-8
 
RUN echo "Hello World"
```