Skip to content
This repository has been archived by the owner on Nov 23, 2019. It is now read-only.

docker-archive/dcus-hol-2017

Repository files navigation

DockerCon US 2017 Hands-On Labs (HOL)

dcus2017

This repo contains the series of hands-on labs presented at DockerCon 2017. They are designed to help you gain experience in various Docker features, products, and solutions. Depending on your experience, each lab requires between 30-45 minutes to complete. They range in difficulty from easy to advanced.

You should be receiving an email with the necessary hostnames and credentials for the Azure VMs and Docker Datacenter clusters necessary to complete the labs.

After you have your email, you can then choose one or more of the following lab tutorials to go through.


In this lab, you will learn how to configure a continuous integration (CI) pipeline for a web application using Docker Cloud's automated build features. You will complete the following tasks as part of the lab:

Difficulty: Beginner

Time: Approximately 20 minutes

Tasks / Concepts

  • Configure Docker Cloud to Automatically Build Docker Images
  • Configure Docker Cloud Autobuilds
  • Trigger an Autobuild

In this lab you will play around with the container orchestration features of Docker. You will deploy a simple application to a single host and learn how that works. Then, you will configure Docker Swarm Mode, and learn to deploy the same simple application across multiple hosts. You will then see how to scale the application and move the workload across different hosts easily.

Difficulty: Beginner

Time: Approximately 30 minutes

Tasks / Concepts

  • What is Orchestration
  • Configure Swarm Mode
  • Deploy applications across multiple hosts
  • Scale the application
  • Drain a node and reschedule the containers

Difficulty: Intermediate to Advanced

Time: Approximately 45 minutes

Tasks / Concepts

  • Deploy a full 3-node Swarm & UCP cluster
  • Use the Swarm UI
  • Deploy a multi-service, multi-node application
  • Simulate a node failure
  • Use application load balancing
  • Overlay networking
  • Application secrets
  • Application health checks and self-healing apps

In this lab you will integrate Docker EE Advanced in to your development pipeline. You will build your application from a Dockerfile and push your image to the Docker Trusted Registry (DTR). DTR will scan your image for vulnerabilities so they can be fixed before your application is deployed. This helps you build more secure apps!

Difficulty: Beginner

Time: Approximately 30 minutes

Tasks / Concepts:

  • Build a Docker Application
  • Pushing and Scanning Docker Images
  • Remediating Application Vulnerabilities

In this lab you will learn about key Docker Networking concepts. You will get your hands dirty by going through examples of a few basic networking concepts, learn about Bridge and Overlay networking, and finally learning about the Swarm Routing Mesh.

Difficulty: Beginner to Intermediate

Time: Approximately 45 minutes

Tasks / Concepts

  • Networking Basics
  • Bridge Networking
  • Overlay Networking

Docker runs natively on Windows 10 and Windows Server 2016. In this lab you'll learn how to package Windows applications as Docker images and run them as Docker containers. You'll learn how to create a cluster of Docker servers in swarm mode, and deploy an application as a highly-available service.

Difficulty: Beginner

Time: Approximately 30 minutes

Tasks / Concepts:

  • Run some simple Windows Docker containers
  • Package and run a custom app using Docker
  • Run your app in a highly-available cluster

You can run full .NET Framework apps in Docker using the Windows Server Core base image from Microsoft. That image is a headless version of Windows Server 2016, so it has no UI but it has all the other roles and features available. Building on top of that there are also Microsoft images for IIS and ASP.NET, which are already configured to run ASP.NET and ASP.NET 3.5 apps in IIS.

This lab steps through porting an ASP.NET WebForms app to run in a Docker container on Windows Server 2016. With the app running in Docker, you can easily modernize it - and in the lab you'll add new features quickly and safely by making use of the Docker platform.

Difficulty: Beginner

Time: Approximately 35 minutes

Tasks / Concepts

  • Package an existing ASP.NET application so it runs in Docker, without any application changes.
  • Run SQL Server Express in a Docker container, and use it for the application database.
  • Use a feature-driven approach to address problems in the existing application, without an extensive re-write.
  • Use the Dockerfile and Docker Compose syntax to replace manual deployment documents.

You'll already have a process for deploying ASP.NET apps, but it probably involves a lot of manual steps. Work like copying application content between servers, running interactive setup programs, modifying configuration items and manual smoke tests all add time and risk to deployments.

In Docker, the process of packaging applications is completely automated, and the platform supports automatic update and rollback for application deployments. You can build Docker images from your existing application artifacts, and run ASP.NET apps in containers without going back to source code.

This lab is aimed at ops and system admins. It steps through packaging an ASP.NET WebForms app to run in a Docker container on Windows 10 or Windows Server 2016. It starts with an MSI and ends by showing you how to run and update the application as a highly-available service on Docker swam.

Difficulty: Beginner

Time: Approximately 30 minutes

Tasks / Concepts

  • Package an existing ASP.NET MSI so the app runs in Docker, without any application changes.
  • Create an upgraded package with application updates and Windows patches.
  • Update and rollback the running application in a production environment with zero downtime.

Contribute Your Own Labs

If you have an awesome tutorial/lab and would like to add it here. Please open a PR. We would love to add more exciting tutorials to the list!