# docker init

**Descripción:** Crea archivos iniciales relacionados con Docker para tu proyecto

**Uso:** `docker init [OPTIONS]`










## Descripción

Inicializa un proyecto con los archivos necesarios para ejecutarlo en un contenedor.

Docker Desktop proporciona el comando CLI `docker init`. Ejecuta `docker init` en el directorio de tu proyecto para que te guíe a través de la creación de los siguientes archivos con valores predeterminados razonables para tu proyecto:
  
  * .dockerignore
  * Dockerfile
  * compose.yaml
  * README.Docker.md
  
  Si alguno de los archivos ya existe, aparecerá una advertencia que te indicará el conflicto
  y te dará la opción de sobrescribir todos los archivos. Si
  ya existe `docker-compose.yaml` en lugar de `compose.yaml`, `docker
  init` puede sobrescribirlo, utilizando `docker-compose.yaml` como nombre para el
  archivo de Compose.
  
  > [!WARNING]
  >
  > No se pueden recuperar los archivos sobrescritos.
  > Para hacer una copia de seguridad de un archivo existente antes de decidir sobrescribirlo, cambia el nombre del archivo o cópialo en otro directorio.

Después de ejecutar `docker init`, puedes elegir una de las siguientes plantillas:
  
  * ASP.NET Core: Adecuada para una aplicación ASP.NET Core.
  * Go: Adecuada para una aplicación de servidor en Go.
  * Java: Adecuada para una aplicación Java que utiliza Maven y se empaqueta como un "uber jar".
  * Node: Adecuada para una aplicación de servidor en Node.
  * PHP con Apache: Adecuada para una aplicación web PHP.
  * Python: Adecuada para una aplicación de servidor en Python.
  * Rust: Adecuada para una aplicación de servidor en Rust.
  * Other: Punto de partida de propósito general para contenerizar tu aplicación.

Una vez completado `docker init`, es posible que debas modificar los archivos creados y adaptarlos a tu proyecto. Visita los siguientes temas para obtener más información sobre los archivos:
  
  * [.dockerignore](/reference/dockerfile/#dockerignore-file)
  * [Dockerfile](/reference/dockerfile/)
  * [compose.yaml](/compose/intro/compose-application-model/)


## Opciones

| Opción                                                        | Predeterminado                                        | Descripción                                                                                                                                    |
| ------------------------------------------------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|  | `--version` |  |  Muestra la versión del plugin de init |




## Ejemplos

### Ejemplo de ejecución de `docker init`

El siguiente ejemplo muestra el menú inicial después de ejecutar `docker init`. Consulta los ejemplos adicionales para ver las opciones de cada lenguaje o framework.

```console
$ docker init

Welcome to the Docker Init CLI!

This utility will walk you through creating the following files with sensible defaults for your project:
  - .dockerignore
  - Dockerfile
  - compose.yaml
  - README.Docker.md

Let's get started!

? What application platform does your project use?  [Use arrows to move, type to filter]
> PHP with Apache - (detected) suitable for a PHP web application
  Go - suitable for a Go server application
  Java - suitable for a Java application that uses Maven and packages as an uber jar
  Python - suitable for a Python server application
  Node - suitable for a Node server application
  Rust - suitable for a Rust server application
  ASP.NET Core - suitable for an ASP.NET Core application
  Other - general purpose starting point for containerizing your application
  Don't see something you need? Let us know!
  Quit
```

### Ejemplo al seleccionar Go

El siguiente ejemplo muestra las preguntas que aparecen después de seleccionar `Go` y un ejemplo de entrada.

```console
? What application platform does your project use? Go
? What version of Go do you want to use? 1.20
? What's the relative directory (with a leading .) of your main package? .
? What port does your server listen on? 3333

CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
CREATED: README.Docker.md

✔ Your Docker files are ready!

Take a moment to review them and tailor them to your application.

When you're ready, start your application by running: docker compose up --build

Your application will be available at http://localhost:3333

Consult README.Docker.md for more information about using the generated files.
```

### Ejemplo al seleccionar Node

El siguiente ejemplo muestra las preguntas que aparecen después de seleccionar `Node` y un ejemplo de entrada.

```console
? What application platform does your project use? Node
? What version of Node do you want to use? 18
? Which package manager do you want to use? yarn
? Do you want to run "yarn run build" before starting your server? Yes
? What directory is your build output to? (comma-separate if multiple) output
? What command do you want to use to start the app? node index.js
? What port does your server listen on? 8000

CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
CREATED: README.Docker.md

✔ Your Docker files are ready!

Take a moment to review them and tailor them to your application.

When you're ready, start your application by running: docker compose up --build

Your application will be available at http://localhost:8000

Consult README.Docker.md for more information about using the generated files.
```

### Ejemplo al seleccionar Python

El siguiente ejemplo muestra las preguntas que aparecen después de seleccionar `Python` y un ejemplo de entrada.

```console
? What application platform does your project use? Python
? What version of Python do you want to use? 3.8
? What port do you want your app to listen on? 8000
? What is the command to run your app (e.g., gunicorn 'myapp.example:app' --bind=0.0.0.0:8000)? python ./app.py

CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
CREATED: README.Docker.md

✔ Your Docker files are ready!

Take a moment to review them and tailor them to your application.

When you're ready, start your application by running: docker compose up --build

Your application will be available at http://localhost:8000

Consult README.Docker.md for more information about using the generated files.
```

### Ejemplo al seleccionar Rust

El siguiente ejemplo muestra las preguntas que aparecen después de seleccionar `Rust` y un ejemplo de entrada.

```console
? What application platform does your project use? Rust
? What version of Rust do you want to use? 1.70.0
? What port does your server listen on? 8000

CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
CREATED: README.Docker.md

✔ Your Docker files are ready!

Take a moment to review them and tailor them to your application.

When you're ready, start your application by running: docker compose up --build

Your application will be available at http://localhost:8000

Consult README.Docker.md for more information about using the generated files.
```

### Ejemplo al seleccionar ASP.NET Core

El siguiente ejemplo muestra las preguntas que aparecen después de seleccionar `ASP.NET Core` y un ejemplo de entrada.

```console
? What application platform does your project use? ASP.NET Core
? What's the name of your solution's main project? myapp
? What version of .NET do you want to use? 6.0
? What local port do you want to use to access your server? 8000

CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
CREATED: README.Docker.md

✔ Your Docker files are ready!

Take a moment to review them and tailor them to your application.

When you're ready, start your application by running: docker compose up --build

Your application will be available at http://localhost:8000

Consult README.Docker.md for more information about using the generated files.
```

### Ejemplo al seleccionar PHP con Apache

El siguiente ejemplo muestra las preguntas que aparecen después de seleccionar `PHP with Apache` y un ejemplo de entrada. La plantilla de PHP con Apache es adecuada tanto para aplicaciones de PHP puro como para aplicaciones que utilizan Composer como gestor de dependencias. Después de ejecutar `docker init`, debes añadir manualmente al Dockerfile cualquier extensión de PHP que requiera tu aplicación.

```console
? What application platform does your project use? PHP with Apache
? What version of PHP do you want to use? 8.2
? What's the relative directory (with a leading .) for your app? ./src
? What local port do you want to use to access your server? 9000

CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
CREATED: README.Docker.md

✔ Your Docker files are ready!

Take a moment to review them and tailor them to your application.

If your application requires specific PHP extensions, you can follow the instructions in the Dockerfile to add them.

When you're ready, start your application by running: docker compose up --build

Your application will be available at http://localhost:9000

Consult README.Docker.md for more information about using the generated files.
```

### Ejemplo al seleccionar Java

El siguiente ejemplo muestra las preguntas que aparecen después de seleccionar `Java` y un ejemplo de entrada.

```console
? What application platform does your project use? Java
? What version of Java do you want to use? 17
? What's the relative directory (with a leading .) for your app? ./src
? What port does your server listen on? 9000

CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
CREATED: README.Docker.md

✔ Your Docker files are ready!

Take a moment to review them and tailor them to your application.

When you're ready, start your application by running: docker compose up --build

Your application will be available at http://localhost:9000

Consult README.Docker.md for more information about using the generated files.
```

### Ejemplo al seleccionar Other (Otro)

El siguiente ejemplo muestra la salida tras seleccionar `Other`.

```console
? What application platform does your project use? Other

CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
CREATED: README.Docker.md

✔ Your Docker files are ready!

Take a moment to review them and tailor them to your application.

When you're ready, start your application by running: docker compose up --build

Consult README.Docker.md for more information about using the generated files.
```



