> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Demo Deployment in Docker EE

> Step-by-step guide to deploy and manage a Swarm service in Docker EE using the Universal Control Plane UCP console.

***

title: Demo Deployment in Docker EE with UCP
description: Step-by-step guide to deploy and manage a Swarm service in Docker EE using the Universal Control Plane (UCP) console.
----------------------------------------------------------------------------------------------------------------------------------

## Prerequisites

* A running Docker EE UCP cluster
* Access rights to create and manage services

<Callout icon="lightbulb" color="#1CB2FE">
  Ensure you are logged into the UCP console with an account that has the `admin` or `cluster_admin` role.
</Callout>

## Step-by-Step: Deploying a Swarm Service

### 1. Access the UCP Console

Open your browser and navigate to:

```text theme={null}
https://<ucp-domain>/
```

From the left menu, click **Swarm** → **Services**. If no services exist, you’ll see an empty list.

### 2. Create a New Service

Click **Create** and configure the **Details** tab:

| Setting | Value          |
| ------- | -------------- |
| Name    | `KodeKloud`    |
| Image   | `nginx:latest` |

Leave all other options at their defaults.

<Frame>
  ![The image shows a "Create Service" interface for Docker, with options for setting service mode, scale, constraints, and update configuration. The interface includes tabs for details, collection, scheduling, network, environment, resources, and logging.](https://kodekloud.com/kk-media/image/upload/v1752873848/notes-assets/images/Docker-Certified-Associate-Exam-Course-Demo-Deployment-in-Docker-EE/docker-create-service-interface.jpg)
</Frame>

### 3. Adjust Scheduling Policies

Switch to the **Scheduling** tab to modify:

* Service mode (replicated or global)
* Replica count
* Placement constraints
* Update policy (parallelism, delay)

### 4. Define Environment Variables

On the **Environment** tab, you can:

* Add `Environment Variables`
* Attach `Secrets` and `Configs`
* Assign service `Labels`

<Frame>
  ![The image shows a "Create Service" interface in a Docker management console, with options to configure secrets, configurations, environment variables, and labels. The sidebar includes sections like Details, Collection, Scheduling, Network, Environment, Resources, and Logging.](https://kodekloud.com/kk-media/image/upload/v1752873849/notes-assets/images/Docker-Certified-Associate-Exam-Course-Demo-Deployment-in-Docker-EE/docker-create-service-interface-2.jpg)
</Frame>

### 5. Allocate Resources

Use the **Resources** tab to reserve or limit CPU and memory. Configure volume mounts if needed.

### 6. Configure Logging

Select a logging driver (e.g., `json-file`, `syslog`) and set driver options under the **Logging** tab.

### 7. Publish Service Ports

Under **Network**, map the service ports for external access:

| Port Setting   | Value |
| -------------- | ----- |
| Mode           | `tcp` |
| Target Port    | `80`  |
| Published Port | `82`  |

Click **Confirm**, review your settings, then **Create**.

<Frame>
  ![The image shows a web interface for creating a service in Docker Enterprise, specifically focusing on network settings such as endpoint specifications, ports, and protocols. Options for mode, target port, protocol, and publish mode are visible, with buttons to cancel or confirm the configuration.](https://kodekloud.com/kk-media/image/upload/v1752873850/notes-assets/images/Docker-Certified-Associate-Exam-Course-Demo-Deployment-in-Docker-EE/docker-enterprise-service-configuration.jpg)
</Frame>

## Verifying Deployment

After creation, the service appears in *Pending* (red) and then becomes *Running* (green). Click the service name to view details and endpoint information.

<Frame>
  ![The image shows a Docker Enterprise interface displaying details of a service named "kodekloudtest," including its ID, image, creation time, and endpoint.](https://kodekloud.com/kk-media/image/upload/v1752873851/notes-assets/images/Docker-Certified-Associate-Exam-Course-Demo-Deployment-in-Docker-EE/docker-enterprise-kodekloudtest-service.jpg)
</Frame>

Copy and open the endpoint URL in your browser:

```text theme={null}
http://<ucp-node-address>:82
```

You’ll see the default NGINX welcome page, confirming external access is working.

<Callout icon="lightbulb" color="#1CB2FE">
  To remove the service, select it, choose **Actions** → **Delete**, and confirm the prompt.
</Callout>

<Frame>
  ![The image shows a confirmation dialog for deleting a service named "kodekloudtest" with options to cancel or confirm the deletion.](https://kodekloud.com/kk-media/image/upload/v1752873851/notes-assets/images/Docker-Certified-Associate-Exam-Course-Demo-Deployment-in-Docker-EE/delete-service-kodekloudtest-confirmation-dialog.jpg)
</Frame>

## References

* [Docker Enterprise Documentation](https://docs.docker.com/ee/ucp/)
* [Docker Swarm Overview](https://docs.docker.com/engine/swarm/)
* [Kubernetes vs. Swarm](https://docs.docker.com/engine/swarm/stack-deploy/)

<CardGroup>
  <Card title="Watch Video" icon="video" cta="Learn more" href="https://learn.kodekloud.com/user/courses/docker-certified-associate-exam-course/module/a6a39359-7fb1-4fab-b0c2-6fc58a6ce617/lesson/0ed35cf3-2521-4b27-8156-e324f1ed9351" />
</CardGroup>
