diff --git a/_data/init-cli/docker_init.yaml b/_data/init-cli/docker_init.yaml new file mode 100644 index 0000000000..cecb378cb5 --- /dev/null +++ b/_data/init-cli/docker_init.yaml @@ -0,0 +1,150 @@ +command: docker init +short: Creates Docker-related starter files for your project +long: |- + 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 + * docker-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. + {: .warning} + + After running `docker init`, you can choose one of the following templates: + + * Go: Suitable for a Go server application. + * Other: General purpose starting point for containerizing your application. + + After `docker init` has completed, you must modify the created files and tailor them to your project. Visit the following topics to learn more about the files: + + * [.dockerignore](../../../engine/reference/builder.md#dockerignore-file) + * [Dockerfile](../../../engine/reference/builder.md) + * [docker-compose.yaml](../../../compose/compose-file/03-compose-file.md) + +usage: docker init [OPTIONS] +pname: docker +plink: docker.yaml +options: + - option: version + value_type: bool + default_value: "false" + description: Display version of the init plugin + deprecated: false + hidden: false + experimental: false + experimentalcli: false + kubernetes: false + swarm: false +deprecated: false +experimental: false +experimentalcli: false +kubernetes: false +swarm: false +examples: |- + ### Example of selecting Other + + The following example runs `docker init` and walks through the options after selecting `Other`. + + ```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 + - docker-compose.yaml + + Let's get started! + + ? What application platform does your project use? [Use arrows to move, type to filter] + > Go - suitable for a Go server application + Other - general purpose starting point for containerizing your application + Don't see something you need? Let us know! + Quit + ``` + + The following appears after selecting `Other`. + + ```console + CREATED: .dockerignore + CREATED: Dockerfile + CREATED: docker-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 + ``` + + ### Example of selecting Go + + The following example runs `docker init` and walks through the options after selecting `Go`. + + ```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 + - docker-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 + Other - general purpose starting point for containerizing your application + Don't see something you need? Let us know! + Quit + ``` + + The following appears after selecting `Go`. + + ```console + ? What application platform does your project use? Go + ? What version of Go do you want to use? (1.20) + ``` + + The following appears after selecting the default `1.20`. + + ```console + ? What version of Go do you want to use? 1.20 + ? What's the relative directory (with a leading .) of your main package? (.) + ``` + + The following appears after selecting the default `.`. + + ```console + ? What's the relative directory (with a leading .) of your main package? . + ? What port does your server listen on? (3333) + ``` + + The following appears after selecting the default `3333`. + + ```console + ? What port does your server listen on? 3333 + + CREATED: .dockerignore + CREATED: Dockerfile + CREATED: docker-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 -d + + Your application will be available at http://localhost:3333 + + To stop your application, run: docker compose down + ``` diff --git a/_data/toc.yaml b/_data/toc.yaml index 6ac357a0c1..a845b0aa19 100644 --- a/_data/toc.yaml +++ b/_data/toc.yaml @@ -511,6 +511,8 @@ reference: title: docker import - path: /engine/reference/commandline/info/ title: docker info + - path: /engine/reference/commandline/init/ + title: docker init (Beta) - path: /engine/reference/commandline/inspect/ title: docker inspect - path: /engine/reference/commandline/kill/ diff --git a/engine/reference/commandline/init.md b/engine/reference/commandline/init.md new file mode 100644 index 0000000000..b93e7beb72 --- /dev/null +++ b/engine/reference/commandline/init.md @@ -0,0 +1,17 @@ +--- +datafolder: init-cli +datafile: docker_init +title: docker init +--- + +> **Beta** +> +> The Docker Init plugin is currently in [Beta](../../../release-lifecycle.md#beta). Docker recommends that you do not use this in production environments. + +{% include cli.md datafolder=page.datafolder datafile=page.datafile %}