Continuous Integration With Docker

From development to deployment, containers significantly improve the way we build systems and applications. This online course introduces containers and Docker, a powerful technology for their management.

Course Overview

Containers provide a way to help developers package and deploy their software quickly and efficiently. They are a natural fit for DevOps practices and a great way to deploy microservices. This course introduces the de-facto standard tool for working with containers: Docker.

Docker is a set of programs that makes it easy to create containers and container "images". This brief video course and hands-on labs will provide a crash-course to the fundamentals of Docker for developers. It will walk you through the fundamentals of running programs, packaging your software as container images, and managing associated program resources such as networking and storage. The final section of the course will then show how containers can be used to build complex systems in the form of a Continuous Integration pipeline.

Topics covered include: containers, tools for local management, volumes, networking and continuous integration. Students will get hands-on experience with how the technologies can be used to deliver software following microservices and DevOps strategies, and will create a complete continuous integration (CI) pipeline showing how Docker can be used to manage the software lifecycle. Components of the broader software ecosystem including GitLab, Jenkins, and NGINX will also be covered as they pertain to Docker.

Objectives.

  • Learn the fundamental problems solved by containers and how they can be used to simplify software development and deployment.
  • Install Docker locally on your operating system.
  • Create containers with both packaged solutions and custom software.
  • Use the Docker CLI environment to deploy solutions on a local system.
  • Design and run CI pipelines using Jenkins.

Target Audience.

Developers who want to understand Docker and how it can be used to for the packaging and deployment of software.

Prerequisites.

  • Linux or Unix-type (macOS) operating system
  • Beginner experience with the BASH Command Line Interface (CLI)
  • Broad understanding of Linux system administration: Linux file system, networking, and BASH scripting.
  • Computer programming concepts and methodologies. Full code examples for the course are provided in the Python and Java programming languages.

Course Details

Part 1: Getting Started

Objectives:

  • Discuss how containers are an important technology that allow for implementation of many new practices such as microservice architecture and DevOps practices
  • Configure your environment for this course: install Docker and clone the course repository
  • Introduce Docker and demonstrate it's basic usage

Modules:

  • Introduction
  • Tools and Interfaces
  • DevOps and Docker
  • Environment Setup

Part 2: Docker Fundamentals

Objectives:

  • Look at Docker from the high level and how to work with its basic functionality.
  • Introduce container registry and networking capabilities
  • Demonstrate container file sharing and volume management

Modules:

  • Docker Runtime and Fundamentals
  • Docker Container Registry / Networking
  • Docker Volumes

Part 3: Docker in the Real-World

Objectives:

  • Introduce techniques for deploying multi-container applications
  • Discuss CI/CD and how it is implemented
  • Design and build a continuous integration system
  • Deploy a big-data lab environment using orchestration

Modules:

  • Multi-container Applications
  • CI/CD Fundamentals and Components
  • Use-Case: Validating Credit Card Numbers
  • Deploy CI
  • Orchestration with Docker Compose
Text on Notepad: "Getting Started"


Introduction

  • Tools and Interfaces
  • DevOps and Docker
Writing Steps on a Notepad


Setting Up

  • Lab: Environment Setup
  • Task: Environment Setup (Linux or macOS)
  • Docker Preview
Stacked set of four containers

Docker Fundamentals

  • Docker Runtime
  • Lab: Docker Fundamentals
  • Task: Explore Docker
  • Task: Managing Containers
  • Lab: Dockerfiles
  • Task: Building Images with Dockerfiles

Docker Registry and Networking

  • Container Registries
  • Docker Networking
  • Lab: Docker Registry Server
  • Task: Deploy a Local Docker Registry Server
  • Task: Working with a Local Docker Repository
  • Lab: Docker Networking

Docker Volumes

  • Managing Volumes with Docker
  • Lab: Docker Volumes
  • Lab: Deploy GitLab Server

Container Yard

Multi-Stage Builds

  • Traditional Docker Builds vs Multi-stage Builds
  • Lab: Multi-container Applications
  • Task: Deploy a SQL Server Database
  • Task: Deploy the EComm Web Application

Continuous Integration

  • CI/CD Fundamentals and Components
  • Use-Case: Validating Credit Card Numbers
  • Jenkins Background
  • Lab: Deploy Jenkins
  • Lab: Building Pipelines
  • Towards Continuous Deployment

Orchestration

  • Docker Compose
  • Lab: Deploy a Big-Data Lab Environment

Comments

Loading
Unable to retrieve data due to an error
Retry
No results found
Back to All Comments