docker init
Beta
The Docker Init plugin is currently in Beta. Docker recommends that you do not use this in production environments.
Creates Docker-related starter files for your project
Usage
$ docker init [OPTIONS]
Refer to the options section for an overview of available OPTIONS
for this command.
Description
Initialize a project with the files necessary to run the project in a container.
Docker Desktop 4.18 and later provides the Docker Init plugin with the docker init
CLI command. Run docker init
in your project directory to be walked through the creation of the following files with sensible defaults for your project:
- .dockerignore
- Dockerfile
- compose.yaml
If any of the files already exist, a prompt appears and provides a warning as well as giving you the option to overwrite all the files.
Warning
You can’t recover overwritten files. To back up an existing file before selecting to overwrite it, rename the file or copy it to another directory.
After running docker init
, you can choose one of the following templates:
- Go: Suitable for a Go server application.
- Python: Suitable for a Python server application.
- Node: Suitable for a Node server application.
- Other: General purpose starting point for containerizing your application.
After docker init
has completed, you may need to modify the created files and tailor them to your project. Visit the following topics to learn more about the files:
For example uses of this command, refer to the examples section below.
Options
Name, shorthand | Default | Description |
--version |
Display version of the init plugin |
Examples
Example of running docker init
The following example shows the initial menu after running docker init
. See the additional examples to view the options for each language or framework.
$ 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
Let's get started!
? What application platform does your project use? [Use arrows to move, type to filter]
> Go - (detected) suitable for a Go server application
Python - suitable for a Python server application
Node - suitable for a Node server application
Other - general purpose starting point for containerizing your application
Don't see something you need? Let us know!
Quit
Example of selecting Go
The following example shows the prompts that appear after selecting Go
and example input.
? 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
✔ 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
Example of selecting Python
The following example shows the prompts that appear after selecting Python
and example input.
? 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
✔ 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
Example of selecting Node
The following example shows the prompts that appear after selecting Node
and example input.
? 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
✔ 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
Example of selecting Other
The following example shows the output after selecting Other
.
? What application platform does your project use? Other
CREATED: .dockerignore
CREATED: Dockerfile
CREATED: compose.yaml
✔ 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