Using Marathon to Schedule Docker Containers on DC/OS
DC/OS was declared end of life October 31, 2021 and the content is no longer maintained
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:
Updates
August 1st, 2021 - Resolved an issue preventing the DC/OS cluster from provisioning
October 2nd, 2020 - Replaced CoreOS virtual machines (no longer available in AWS) with CentOS
January 10th, 2019 - Added a validation Lab Step to check the work you perform in the Lab
Logan has been involved in software development and research since 2007 and has been in the cloud since 2012. He is an AWS Certified DevOps Engineer - Professional, AWS Certified Solutions Architect - Professional, Microsoft Certified Azure Solutions Architect Expert, MCSE: Cloud Platform and Infrastructure, Google Cloud Certified Associate Cloud Engineer, Certified Kubernetes Security Specialist (CKS), Certified Kubernetes Administrator (CKA), Certified Kubernetes Application Developer (CKAD), and Certified OpenStack Administrator (COA). He earned his Ph.D. studying design automation and enjoys all things tech.