Install Docker App

If you want to install Docker on the Windows Server base image and run containerized apps instead of using the Windows Server for Containers image, then follow the steps outlined below. Start by creating a Windows Server instance using a Windows Server 2016 or later public image. For the best container support, we recommend that you use the.


  • Below are instructions for downloading and installing Docker (it's pretty simple), then configuring it for SQL Server. Install and run Docker Desktop on Mac đź”— Double-click Docker.dmg to open the installer, then drag the Docker icon to the Applications folder. Double-click Docker.app in the Applications folder to start Docker.
  • Docker App is a Cloud Native application packaging framework with which developers and devops can build, share, and run a set of microservices as a single entity. Docker Apps are based on the Compose format, which permits docker-compose users to easily share their Compose-based multiservice applications via container registries.

Docker Application

This command is deprecated.

It may be removed in a future Docker version. For more information, see the Docker Roadmap.

Extended description

A tool to build and manage Docker Applications.

Parent command


Child commands

docker app bundleCreate a CNAB invocation image and bundle.json for the application
docker app completionGenerates completion scripts for the specified shell (bash or zsh)
docker app initInitialize Docker Application definition
docker app inspectShows metadata, parameters and a summary of the Compose file for a given application
docker app installInstall an application
docker app listList the installations and their last known installation result
docker app pullPull an application package from a registry
docker app pushPush an application package to a registry
docker app renderRender the Compose file for an Application Package
docker app statusGet the installation status of an application
docker app uninstallUninstall an application
docker app upgradeUpgrade an installed application
docker app validateChecks the rendered application is syntactically correct
docker app versionPrint version information


Docker App is a CLI plug-in that introduces a top-level docker app command to bring the container experience to applications. The following table compares Docker containers with Docker applications.

ObjectConfig fileBuild withExecute withShare with
ContainerDockerfiledocker image builddocker container rundocker image push
AppApp Packagedocker app bundledocker app installdocker app push

With Docker App, entire applications can now be managed as easily as images and containers. For example, Docker App lets you build, validate and deploy applications with the docker app command. You can even leverage secure supply-chain features such as signed push and pull operations.

NOTE: docker app works with Docker 19.03 or higher.

This guide walks you through two scenarios:

  1. Initialize and deploy a new Docker App project from scratch.
  2. Convert an existing Compose app into a Docker App project (added later in the beta process).

The first scenario describes basic components of a Docker App with tools and workflow.

Initialize and deploy a new Docker App project from scratch

This section describes the steps for creating a new Docker App project to familiarize you with the workflow and most important commands.

  1. Prerequisites
  2. Initialize an empty new project
  3. Populate the project
  4. Validate the app
  5. Deploy the app
  6. Push the app to Docker Hub
  7. Install the app directly from Docker Hub


You need at least one Docker node operating in Swarm mode. You also need the latest build of the Docker CLI with the App CLI plugin included.

Depending on your Linux distribution and your security context, you might need to prepend commands with sudo.

Initialize a new empty project


The docker app init command is used to initialize a new Docker application project. If you run it on its own, it initializes a new empty project. If you point it to an existing docker-compose.yml file, it initializes a new project based on the Compose file.

Use the following command to initialize a new empty project called “hello-world”.

The command produces a new directory containing three YAML files. The name of the directory is the name of theproject with .dockerapp appended, and the three YAML files are:

  • docker-compose.yml
  • metadata.yml
  • parameters.yml

Inspect the YAML files with the following commands.

Your files might be more verbose.

Let’s quickly describe each file.

docker-compose.yml describes the application.

metadata.yml specifies identification metadata such as name, version, description and maintainers. It acceptskey-value pairs.

parameters.yml specifies default values for application parameters.

Populate the project

This section describes editing the project YAML files so that it runs a simple web app.

Use your preferred editor to edit the docker-compose.yml YAML file and update it with the following information:

Update the parameters.yml file to the following:

Save the changes.

The application is updated to run a single-container application based on the hashicorp/http-echo web server image. This image has it execute a single command that displays some text and exposes itself on a network port.

Following best practices, the configuration of the application is decoupled from the application itself using variables. In this case, the text displayed by the app and the port on which it will be published are controlled by two variables defined in the Parameters section of the file.

Install Docker Apple M1

Docker App provides the inspect subcommand to provide a prettified summary of the application configuration. It is a quick way to check how to configure the application before deployment, without having to read the Compose file. It’s important to note that the application is not running at this point, and that the inspect operation inspects the configuration file(s).

docker app inspect operations fail if the Parameters section doesn’t specify a default value for every parameter expressed in the app section.

The application is ready to be validated and rendered.

Validate the app

Docker App provides the validate subcommand to check syntax and other aspects of the configuration. If the app passes validation, the command returns no arguments.


docker app validate operations fail if the Parameters section doesn’t specify a default value for every parameter expressed in the app section.

As the validate operation has returned no problems, the app is ready to be deployed.

Deploy the app

There are several options for deploying a Docker App project.

  • Deploy as a native Docker App application
  • Deploy as a Compose app application
  • Deploy as a Docker Stack application

All three options are discussed, starting with deploying as a native Docker App application.

Deploy as a native Docker App

The process for deploying as a native Docker app is as follows:

Use docker app install to deploy the application.

Use the following command to deploy (install) the application.

By default, docker app uses the current context to run the installation container and as a target context to deploy the application. You can override the second context using the flag --target-context or by using the environment variable DOCKER_TARGET_CONTEXT. This flag is also available for the commands status, upgrade, and uninstall.

Note: Two applications deployed on the same target context cannot share the same name, but this is valid if they are deployed on different target contexts.

You can check the status of the app with the docker app status <app-name> command.

The app is deployed using the stack orchestrator. This means you can also inspect it using the regular docker stack commands.

Now that the app is running, you can point a web browser at the DNS name or public IP of the Docker node on port 8080 and see the app. You must ensure traffic to port 8080 is allowed on the connection from your browser to your Docker host.

Now change the port of the application using docker app upgrade <app-name> command.

You can uninstall the app with docker app uninstall my-app.

Deploy as a Docker Compose app

The process for deploying as a Compose app comprises two major steps:

  1. Render the Docker app project as a docker-compose.yml file.
  2. Deploy the app using docker-compose up.

You need a recent version of Docker Compose to complete these steps.

Rendering is the process of reading the entire application configuration and outputting it as a single docker-compose.yml file. This creates a Compose file with hard-coded values wherever a parameter was specified as a variable.

Use the following command to render the app to a Compose file called docker-compose.yml in the current directory.

Check the contents of the resulting docker-compose.yml file.

Notice that the file contains hard-coded values that were expanded based on the contents of the Parameters section of the project’s YAML file. For example, ${hello.text} has been expanded to “Hello world!”.

Note: Almost all the docker app commands propose the --set key=value flag to override a default parameter.

Try to render the application with a different text:

Use docker-compose up to deploy the app.

The application is now running as a Docker Compose app and should be reachable on port 8080 on your Docker host. You must ensure traffic to port 8080 is allowed on the connection form your browser to your Docker host.

You can use docker-compose down to stop and remove the application.

Deploy as a Docker Stack

Deploying the app as a Docker stack is a two-step process very similar to deploying it as a Docker Compose app.

  1. Render the Docker app project as a docker-compose.yml file.
  2. Deploy the app using docker stack deploy.

Complete the steps in the previous section to render the Docker app project as a Compose file and make sure you’re ready to deploy it as a Docker Stack. Your Docker host must be in Swarm mode.

The app is now deployed as a Docker stack and can be reached on port 8080 on your Docker host.

Use the docker stack rm hello-world-app command to stop and remove the stack. You must ensure traffic to port 8080 is allowed on the connection form your browser to your Docker host.

Push the app to Docker Hub

As mentioned in the introduction, docker app lets you manage entireapplications the same way that you currently manage container images. Forexample, you can push and pull entire applications from registries like DockerHub with docker app push and docker app pull. Other docker app commands,such as install, upgrade, inspect, and render can be performed directlyon applications while they are stored in a registry.

Install Docker App From Github

Push the application to Docker Hub. To complete this step, you need a validDocker ID and you must be logged in to the registry to which you are pushingthe app.

By default, all platform architectures are pushed to the registry. If you arepushing an official Docker image as part of your app, you may find your appbundle becomes large with all image architectures embedded. To just push thearchitecture required, you can add the --platform flag.

Install the app directly from Docker Hub

Now that the app is pushed to the registry, try an inspect and install command against it. The location of your app is different from the one provided in the examples.

Install Docker Application

This action was performed directly against the app in the registry.

Now install it as a native Docker App by referencing the app in the registry, with a different port.

Test that the app is working.

The app used in these examples is a simple web server that displays the text “Hello world!” on port 8181, your app might be different.

Install Appium Docker

Uninstall the app.

Docker Install App On Image

You can see the name of your Docker App with the docker stack ls command.

Most Viewed Posts