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 |
---|---|---|
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. |
|
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. |
|
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! |
|
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. |
|
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. |
|
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. |
|
Workshop |
Here are workshops for several of the popular programming languages. Pick the language you are comfortable with and get started! |
|
Workshop |
This workshop will cover building images quickly, and providing small production images. Topics include Dockerfiles, build cache usage, and multi-stage builds. |
|
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. |
|
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. |
|
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. |
. |