# Deploy a Docker application

> Create a Docker app from a Git repository or image, review environment values, and complete the first deployment.

Docker services run container workloads inside the CPU, memory, storage, bandwidth, app, container, and public-port limits shown for the selected plan.

## Before you begin

Confirm that you have:

- An active Docker service with its node online.
- A public Git repository URL and branch, or a pullable container image.
- The internal port on which the application listens.
- Every required environment value and secret.

The application must listen on `0.0.0.0` inside the container, not only `127.0.0.1`, if it will receive routed traffic.

## Create the app

1. Open **Dashboard → Services**, select the Docker service, then open **Apps**.
2. Click **Create New App**.
3. Enter a unique app name.
4. Choose the source and enter the repository URL and branch or image reference.
5. For a repository, let AppLaunch scan supported environment files and Docker Compose metadata.
6. Review every detected environment variable. Add missing variables manually or paste `KEY=value` lines into the bulk editor.
7. Click **Create App** once the repository scan is complete.

Detected values are suggestions, not proof that the application is production-ready. Remove sample secrets and confirm the intended Compose services before deployment.

For container images, pin a stable version or digest instead of relying on a moving `latest` tag.

## Follow the first deployment

Open the app and use:

- **Deployments** for source and deployment state.
- **Build Logs** for repository build or image preparation output.
- **Logs** for application runtime output.
- **Usage** for current CPU, RAM, storage, and bandwidth consumption.

Wait until the app reports **Running**. If it fails, read the earliest relevant build or runtime error before retrying.

## Publish the app

The app is not automatically public. Continue with [Configure Docker domains and ports](/docker/domains-and-ports/) to create either a direct public port or an HTTPS proxy route to a verified domain.

Use [Configure environment variables](/docker/environment-variables/) before redeploying an app that starts without required configuration.
