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 Universe, 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 Universe 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.

Universe 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 Universe 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 web interface…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 Universe 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 web interface…Read More

Scaling a Service

Scaling a service using the web interface 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 group resources…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