Continuous Integration With Docker
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
Introduction
- Tools and Interfaces
- DevOps and Docker
Setting Up
- Lab: Environment Setup
- Task: Environment Setup (Linux or macOS)
- Docker Preview
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
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
No results found