---
description: Deploy your first service on Docker Cloud
keywords: service, Cloud, three
redirect_from:
- /docker-cloud/getting-started/beginner/your_first_service/
- /docker-cloud/getting-started/beginner/deploy_first_service/
title: Create your first service
---

This page describes how to create a service on Docker Cloud.

## What is a service?

A service is a group of containers of the same **image:tag**. Services make it simple to scale your application. With Docker Cloud, you simply drag a slider to change the number of containers in a service.

Before you can deploy a service in Docker Cloud, you must have at least one node deployed. If you haven't done this yet [follow the tutorial to deploy a node ](your_first_node.md).

When you create a service in the Docker Cloud web interface, a wizard walks you through configuring the service in three steps.

1. **Choose a Container Image** Images can come from Docker Cloud's Jumpstarts library, your personal Docker Hub account or Docker Hub's public index, or from third party registries you connect.
1. **Configure the Service** From here, give the service a name, set the initial number of containers, expose/publish ports, modify the run command or entrypoint, set memory and CPU limits.
1. **Set Environment variables** Set the edit environment variables and link your service to other existing services in Docker Cloud.

> **Note**:In this Quickstart tutorial we won't be working with environment variables or connecting [data volumes](../apps/volumes.md), but these are also available as optional steps in the wizard.

## Select a Service Image

From any page on Docker Cloud, click the **Services** section, then click **Create**.

![](images/create-first-service.png)

For the purposes of this tutorial, click the rocket icon and look for the  **Miscellaneous** section.

You will see an image called `dockercloud/hello-world`.
![](images/first-service-wizard.png)

Click the **dockercloud/hello-world** image. This image creates a container that runs NGINX, and shows a simple *hello world* web page.

## Configure the Service

In this step Docker Cloud loads all of the Image tags available for the image. In this case our tutorial image **dockercloud/hello-world** only has one image tag called **latest**.

For the purposes of this tutorial, you don't actually need to enter or change
anything for most of the fields on the Create Service page.

### Publishing a port

Since we need to access this container over the Internet, we first need to publish a port. By default, ports are not accessible publicly. To learn more about ports click [here](../apps/ports.md).

Click the **Ports** table, where it says *Click to override ports defined in image*. This activates that section so you can make changes. Then click the **Published** checkbox.

![](images/first-service-ports.png)

For this tutorial leave the Node port set to *dynamic*. This means that **port 80** of the container is mapped to a random available port in the node in which the container is deployed. To force a specific port in the node, click *dynamic* and specify a port.

> **Note**: Two containers in the same node cannot publish to the same *node port*.

## Create and Deploy

You don't need to modify anything else in this service for the tutorial, so click **Create and deploy**. Docker Cloud creates, and deploys your new service (just like it says on the tin!)

![](images/first-service-create-and-deploy-button.png)

Next, Cloud sends you to the Service's detailed view. The detailed view contains six informational sections:

  - **Containers**: lists the containers that are part of this service and their status. This is also where you'd go to launch more containers to scale a service.
  - **Endpoints**: shows a list of available service and container endpoints.
  - **Triggers**: allows you to set triggers that perform automatic actions such as scaling a node or redeploying an image when the source updates.
  - **Links**: lists the links between services. For this tutorial this section will be empty.
  - **Volumes**: lists the volumes attached to the service to store data.  For this tutorial this section will be empty.
  - **Environment Variables**: lists the environment variables for the service.

Two additional tabs of information are available for each service:

  - **Logs**: shows check the recent logs from all the containers in this service.
  - **Timeline**: a timeline of all the API calls, and accompanying logs, that were performed against this service.


Click the **Timeline** tab to see a log output similar to the one below. It can take a couple of minutes for the container to deploy.

```
Deploying...
Creating 1 new containers
Preparing to deploy container f93b1a05-4444-49e5-98b0-9dc3a7618453
hello-world-1: Choosing best node. Deployment strategy: BALANCE
hello-world-1: Deploying in 8468426e-tutorial.node.dockerapp.io
hello-world-1: Pulling image dockercloud/hello-world:latest in 8468426e-tutorial.node.dockerapp.io
hello-world-1: Creating in 8468426e-tutorial.node.dockerapp.io
hello-world-1: Starting with docker id df9525795bef5394e1a33b2ef42e26ba991bdccece4bc4f4f34e1def5c095fe9 in 8468426e-tutorial.node.dockerapp.io
hello-world-1: Inspecting and checking its configuration
hello-world-1: Running in 8468426e-tutorial.node.dockerapp.io
```

The web interface will look something like this:

![](images/first-service-timeline.png)

The **hello-world** status line updates to **Running** once the container deploys successfully.

The **Containers** list shows all of the containers in this service. There should just be one for now.

![](images/first-service-container-list.png)

Click the container's name to go to the Container's detail view. From
this page you can see additional information about the containers, such as
endpoints, logs, environment variables, volumes, a terminal, and the console
timeline.

![](images/first-service-container.png)

The **Endpoints** section lists the endpoints (ports) that this container is publishing. In the screenshot above, there is a single endpoint: **hello-world-66622790-1.9ab56d66.container.docker.io:32768**. The endpoint is composed of both the container's hostname and a port number.

Click the links icon to the right of the endpoint. This opens a new tab and shows the webpage that the **hello-world** container is hosting.

![](images/first-service-webpage.png)

**Congratulations!** You've successfully deployed your first service using Docker Cloud.

### What's next?

Learn more about [scaling your service](../apps/service-scaling.md), or check out some of our other [Deploy an app tutorial](deploy-app/index.md).