Docker Learning Paths

Learn fast, build anything

What you will learn

After completing this learning path, you will understand and be able to discuss:

  • What are images and containers
  • The uses of containers
  • How containers fit into the software development lifecycle
  • The ways that containers can help you develop applications
  • What are layers, and how do they relate to images
  • Docker build best practices, including tools to build small images fast
  • What the build cache does to speed up builds, and how to get the most out of it
  • Multi-stage and multi-architecture builds
  • What is container orchestration, and the use cases it solves
  • The rest API that is used by Docker engine to manage containers, images, volumes, and networks
  • The use cases for Docker Compose, which uses the Docker API
  • How to build end-to-end environments using Compose
  • Advanced Compose features


You will be able to complete the following tasks

  • Find and run pre-built containers for software services like databases, proxy servers, or message queues
  • Create a Dockerfile for a project and build a container
  • Build a container for a specific programming language
  • Set up a local development environment using containers
  • Run unit tests with a container
  • Configure and run GitHub Actions to build a container
  • Deploy to a local kubernetes environment
  • Create and edit Dockerfiles to build images to your specifications
  • Structure those Dockerfiles to take advantage of layering and caching
  • Use multi-stage and multi-architecture builds
  • Use Docker Build Cloud to build images faster
  • Build pipelines using Docker Bake
  • Create/edit a compose file to create an end-to-end environment with multiple containers
  • Start/stop a complete environment with a single command

Docker Developer – Basics, Build, Compose

This Docker Developer learning path covers Docker basics, build, and compose functionality. Developers can see value in using containers throughout the local development loop (code, build, test). You will learn about working with containers, building containers, and creating end-to-end applications using multiple containers.

You will need Docker Desktop, Git and a code editor installed – read the detailed instructions below

Audience: Developers, Level: Beginner, Estimated Time to Complete: 8 hours

Material

Type

Description

Docker 101 Tech Talk recording

Tech Talk

Containers have revolutionized how software is built, executed, and shared. This session will cover what containers are, and the ways that development teams start adopting containers. Many teams start with containers supporting their development processes – using containers for dependent services like databases or message queues. Application containerization is another way to start with containers, making your application more portable and easier to get running in a variety of environments. Either way, containers will make your development process better.

Image Deep Dive and Build Tech Talk recording

Tech Talk

An image is a standardized package that includes all of the files, binaries, libraries, and configurations to run a container. Images are structured into layers to promote reuse both in building images and using containers. Building images with Dockerfiles provides standardization and flexibility. Understanding build best practices is essential to building images quickly and securely.

The image deep dive and build best practices presentation covers images and the Docker build system. We’ll talk about how images are structured, how to create dockerfiles, best practices around creating images, and specific features like build caching, multi-stage builds, multi-architecture builds, and super fast builds using Docker Build Cloud.

Docker Compose Tech Talk recording

Tech Talk

Containers are pretty easy to run individually, but most applications require more than one container to run properly. Discover how to create end-to-end environments using Docker Compose. Compose provides easy orchestration of containers to assemble them into a complete application. Compose takes care of all the parameters the containers need to run, local networking and dependencies between containers, security, and more!

Getting Started

Documentation

Docker has a number of guides that will walk you through the basics of what containers are, how to use them, and running your first container.

Docker Build Manual

Documentation

Docker’s build manual covers all the concepts and features of the build system, and is a great reference as you are building your images.

Docker Workshop

Workshop

This workshop will take you through the basics of working with Docker, including building a container for your sample application, running it, and adding a database.

Language Specific Workshops

Workshop

Here are workshops for several of the popular programming languages. Pick the language you are comfortable with and get started!

Docker Build Workshop

Workshop

This workshop will cover building images quickly, and providing small production images. Topics include Dockerfiles, build cache usage, and multi-stage builds.

Build an End-to-End environment using Compose

Quickstart

This quickstart covers the steps to create your first compose file, and covers some of the compose features like compose watch to speed up your development.

Compose Demo

Demo

This is a sample application showing multiple languages and technologies all running side by side in containers. You can start this end-to-end environment with a single Docker compose command. Give it a try!

All done?

Congratulations on completing this Docker learning path.  Please give us feedback on the learning path here

Requirements

The demos and workshops in the learning paths have software requirements to be able to execute. Please see the list below to ensure you are ready to proceed with the learning paths.

Name

Description

Link

Docker Desktop

Provides the ability for developers to build, run, and share containers locally.

Recommend Docker Desktop version 4.34 or higher. Access through your company’s software portal or from https://www.docker.com/

Integrated Development Environment (IDE)

The IDE provides a developer with a place to edit their code and issue commands related to development. VScode and IntelliJ are two popular IDEs. Please install the Docker extension for the IDE you choose to have the best experience.

Git Client

The Git client provides the ability to work with Git source respositories that are used in the demos and workshops for the learning paths. A command line client will do everything we need for the learning paths, there are also GUI Git clients available from the same link.

https://git-scm.com/downloads

Access

The workshops require downloading images from Docker Hub and code from GitHub. Please make sure you have the ability to connect and download to these sites.

.