Deploying Services and Pods

Using Marathon to manage your processes and services

DC/OS uses Marathon to manage your processes and services.

Marathon is the “init system” for DC/OS. Marathon starts and monitors your applications and services, automatically healing failures.

A native Marathon instance is installed as a part of DC/OS installation. After DC/OS has started, you can manage the native Marathon instance through the DC/OS CLI with the dcos marathon command.

DC/OS services are Marathon applications that are deployed on DC/OS. DC/OS services are available from a package repository, such as the Mesosphere Catalog, or you can create your own.

DC/OS Services

You can run DC/OS services you create or install a package from the Catalog. Both the services you create and those you install from Catalog appear on the Services tab of the DC/OS web interface when they are running.

Services you create yourself are administered by Marathon and can be configured and run from the DC/OS CLI with dcos marathon subcommands (e.g. dcos marathon app add <myapp>.json) or via the DC/OS web interface.

Catalog Package Repository

Packaged DC/OS services created by Mesosphere or the community, like Spark or Kafka, appear on the Catalog tab of the DC/OS web interface, or you can search for a package from the DC/OS CLI. You can configure and run Catalog services from the DC/OS web interface or via the DC/OS CLI with the dcos package install <package-name> command.

Installing Services

Installing and verifying a service using the CLI or the UI…Read More

Marathon Configuration Reference

Understanding Marathon application definitions…Read More

Creating Services

Defining a DC/OS service using Marathon…Read More

Task Handling

Understanding Marathon task categories…Read More

Configuring Services

Using the DC/OS CLI to configure services…Read More

Fault Domain Awareness and Capacity Extension


Understanding fault domains…Read More

Granting Access to Services and Groups


Implementing fine-grained user access to services using the web interface or the CLI…Read More

Marathon Placement Constraints

Understanding Marathon placement constraints…Read More

Monitoring Services

Monitoring deployed DC/OS services from the CLI and UI…Read More

Scaling a Service

Scaling a service using the UI and the CLI…Read More

Service Endpoints

Using endpoints with containerized services…Read More

Service Ports

Using Virtual IPs to manage service ports…Read More

Updating a User-Created Service

Updating the configuration of a deployed app…Read More

Using a Private Docker Registry

Creating an archive for a private Docker registry…Read More


Deploying multiple Marathon applications…Read More

Exposing a Service

Launching a service with a Marathon app definition…Read More

Uninstalling Services

Uninstalling DC/OS services from the CLI…Read More

Package Management API


Installing DC/OS services using the Package Management API…Read More

Using Custom Marathon


Deploying non-native instances of Marathon…Read More

Marathon API


Using the Marathon API to manage long-running containerized services…Read More

Using Containerizers

Using containerizers with Docker Engine and Universal Container Runtime…Read More


Using pods to share group resources…Read More

Multi-Tenancy Primitives

A primer to Multi-Tenancy in DC/OS…Read More

Using GPUs

Adding Graphics Processing Units to your long-running DC/OS services…Read More

Frequently Asked Questions

Frequently asked questions about deploying Marathon services…Read More