Using Marathon to Schedule Docker Containers on DC/OS


26 students completed the lab in ~54m

Total available time: 1h:30m

Be the first to rate this lab!

Lab Overview

DC/OS includes the powerful container orchestration tool called Marathon. Marathon supports multiple container types including Docker. In this Lab, you will deploy a Marathon application using a Docker container. As the Lab progresses, you will use additional Docker containers to load balance, scale the application, and persist the application data in a database. You will use the DC/OS command-line interface (CLI) to accomplish these feats.

Lab Objectives

Upon completion of this Lab you will be able to:

  • Write Marathon application definitions
  • Deploy Marathon applications using Docker containers from the DC/OS CLI
  • Scale and load balance Marathon applications using Docker containers
  • Use volumes to persist data beyond the lifetime of a container

Lab Prerequisites

You should be familiar with:

  • Basic DC/OS concepts including master nodes, agents, services, tasks, and Marathon
  • Basic Docker concepts including images, tags, and networks
  • Working at the command-line in Linux
  • AWS services knowledge is useful in order to understand the architecture of the pre-created DC/OS cluster, but not required

Lab Environment

Before completing the Lab instructions, the environment will look as follows:

After completing the Lab instructions, the environment should look similar to:

Follow these steps to learn by building helpful cloud resources

Logging in to the Amazon Web Services Console

Your first step to start the Lab experience

Understanding the DC/OS Cluster Architecture

Understand the cluster architecture and the resources provisioned for this Lab

Connecting to the Virtual Machine using SSH

Create a secure connection to a remote machine

Running a Marathon Application Using Docker Containers

Run a Marathon application by using a Docker container

Running a Docker Container Load Balancer with Marathon

Use a load balancer container to access the web application on private agents

Persisting Data to an External Database

Run a Docker database container to allow web application instances to share data