Docker Fundamentals for Developers

Paths

Docker Fundamentals for Developers

Authors: Nigel Poulton, Dan Wahlin, Nigel Brown, Elton Stoneman, Erik Dahl, Esteban Herrera , Piotr Gaczkowski, Steven Haines, Saravanan Dhandapani, Chris Behrens, Sangeeta Singh

This path provides any developer with an introduction to Docker and using it for any and all of your development needs. This path is unique in that we’re not suggesting you watch... Read more

What you will learn

  • Perform basic docker foundational tasks
  • Building and Running Your First Docker App
  • Build and Orchestrate Containers with Docker Compose
  • Utilize best practices for developing apps in Docker
  • Build .NET Framework apps with Docker
  • Build .NET Core apps with Docker
  • Build Java apps with Docker
  • Build Node.js apps with Docker
  • Build Python apps with Docker
  • Build React.js apps with Docker
  • Build SQL Server databases with Docker
  • Deploy containerized applications
  • Build Go apps with Docker

Pre-requisites

You should have software development experience

Docker Fundamentals

This path provides any developer with an introduction to Docker and using it for any and all of your development needs. This path is unique in that we’re not suggesting you watch every course. The first five courses are ones we consider generally language agnostic (though of course examples will use some language specifics). After that, the rest of the courses are your playground to explore as you see fit with a course covering many of the most popular languages out there as well as other special interest areas.

Getting Started with Docker

by Nigel Poulton

Oct 27, 2020 / 1h 26m

1h 26m

Start Course
Description

Docker and containers have changed the technology world. In this course, Getting Started with Docker, you'll learn the fundamentals of Docker and containers from a developer and an operations perspective. First, you'll learn how to take an application all the way from source code to a running container. Along the way, you'll learn how to create Docker images and how to host them on a container registry. Next, you'll learn how to deploy and manage multi-container applications in a declarative manner using Docker Compose. Finally, you'll learn how to build a secure Swarm cluster and use Docker stacks to deploy multi-container apps in a production-like environment. By the end of this course, you'll have a solid understanding of what containers are and how they work. You'll also have the skills and confidence to take your learning and experience to the next level.

Table of contents
  1. Course Overview
  2. Course Introduction
  3. Getting Docker
  4. Deploying a Containerized App
  5. Microservices and the Real World
  6. What's Next?

Building and Running Your First Docker App

by Dan Wahlin

Mar 22, 2021 / 2h 9m

2h 9m

Start Course
Description

Docker is a very powerful technology that can be used to package, deploy, and run your applications anywhere. In this course, Building and Running Your First Docker App, you’ll learn how an application can be run using Docker containers. First, you’ll explore the case for Docker and learn about the sample application that will be used throughout the course. Next, you’ll discover the role of Docker images and how you can build your own custom application image using a Dockerfile and Docker commands. From there, you’ll learn how to run a custom container and communicate with additional containers such as a database container. Finally, you'll cover how to build images and start multiple containers using an orchestration tool called Docker Compose. When you’re finished with this course, you’ll have the core skills and knowledge of Docker needed to build your own custom images and run your application in a container.

Table of contents
  1. Course Overview
  2. Setting up Your Development Environment
  3. Create an Application Image
  4. Run an Application Container
  5. Communicate between Multiple Containers

Building and Orchestrating Containers with Docker Compose

by Dan Wahlin

May 3, 2021 / 1h 37m

1h 37m

Start Course
Description

Docker Compose can be used to simplify working with images and containers, while also increasing your efficiency and productivity as a developer. In this course, Building and Orchestrating Containers with Docker Compose, you’ll learn what Docker Compose is and how it can be used to work with images and containers. First, you’ll explore the fundamentals of YAML and learn how it is used by Docker Compose to define services. Next, you’ll discover key Docker Compose properties that can be used within services to automate the process of building custom images and running containers. Finally, you’ll learn how to use Docker Compose commands to build custom images, orchestrate running multiple containers, view container logs, and more. When you’re finished with this course, you’ll have the core skills and knowledge of Docker Compose needed to increase your productivity when building custom images and orchestrating multiple containers used by your applications.

Table of contents
  1. Course Overview
  2. Getting Started with Docker Compose
  3. Building Images with Docker Compose
  4. Orchestrating Containers with Docker Compose
  5. Additional Docker Compose Features

Developing Docker Apps: Core Principles

by Nigel Brown

May 14, 2021 / 2h 40m

2h 40m

Start Course
Description

Establishing a productive environment for developing containerized applications can be tricky. In this course, Developing Docker Apps: Core Principles, you'll learn the techniques that are necessary to be successful in developing with Docker. First, you'll discover how to develop inside containers to speed up your development workflow. Next, you'll explore some best practices for making your containers lean and more secure. Finally, you'll learn how to debug your applications when they're running in a container. When you’re finished with this course, you’ll have the skills and knowledge to confidently develop software applications using a container-oriented workflow.

Table of contents
  1. Course Overview
  2. Using Volumes to Develop Applications in Containers
  3. Separating Application Build and Execution with Multi-stage Builds
  4. Best Practices for Optimizing Docker Images
  5. Making Configuration Data Available to Containerized Applications
  6. Configuring Logging for Containerized Applications
  7. Debugging Containerized Applications Using an IDE

Deploying Containerized Applications

by Elton Stoneman

Mar 5, 2021 / 2h 58m

2h 58m

Start Course
Description

You can run Docker containers on one server, in an orchestration platform or a managed service in the cloud. In this course, Deploying Containerized Applications, you’ll experience all the options and learn how to choose your container platform.

First, you’ll explore the features and limitations of Docker Compose. Next, you’ll discover container orchestration, comparing Docker Swarm and Kubernetes. Finally, you’ll learn how to deploy to Azure Container Instances and AWS Elastic Container Service using the Docker Compose format.

When you’re finished with this course, you’ll have the skills and knowledge of container platforms to plan your own path to production.

Table of contents
  1. Course Overview
  2. Deploying Containers with Docker Compose
  3. Exploring Orchestration with Docker Swarm
  4. Understanding Kubernetes
  5. Using Cloud Container Services

Language Specific Content

This path provides any developer with an introduction to Docker and using it for any and all of your development needs. This path is unique in that we’re not suggesting you watch every course. The first five courses are ones we consider generally language agnostic (though of course examples will use some language specifics). After that, the rest of the courses are your playground to explore as you see fit with a course covering many of the most popular languages out there as well as other special interest areas.

Developing .NET Framework Apps with Docker

by Elton Stoneman

Jun 25, 2021 / 3h 34m

3h 34m

Start Course
Description

Business-critical apps running on the .NET Framework don't need to be rewritten to bring them into the modern world of Docker and Kubernetes. In this course, Developing .NET Framework Apps with Docker, you'll learn how to take established applications and run them in Windows containers with no code changes. First, you'll learn how to build and package .NET apps using Docker. Then, you'll explore how to set up your containers so you can inject configuration settings in and read application logs out. Next, you'll discover how to model your .NET Framework apps to run in containers with Docker Compose and Kubernetes. Lastly, you'll delve into techniques for troubleshooting .NET apps in containers. When you’re finished with this course, you’ll have the skills and knowledge of Dockerizing .NET Framework apps so you can start migrating your own apps to run in containers.

Table of contents
  1. Course Overview
  2. Building and Running .NET Apps in Containers
  3. Writing Application Logs to Containers
  4. Reading Config Settings from the Container Environment
  5. Modelling .NET Apps with Docker Compose and Kubernetes
  6. Troubleshooting .NET Apps in Containers

Developing .NET Core Apps with Docker

by Erik Dahl

May 19, 2021 / 3h 40s

3h 40s

Start Course
Description

Docker is a great technology to help simplify various aspects of both developing applications and deploying them, and using it to create .NET Core and .NET apps can make your life in both of these areas much easier. In this course, Building .NET Core Apps with Docker, you’ll learn to create and debug containerized versions of different .NET Core applications, like web applications, console applications, and service applications. First, you’ll explore the process to create and debug containerized .NET Core apps. Next, you’ll discover nuances of logging, configuration, and building .NET Core apps targeting Docker containers. Finally, you’ll learn how to simplify more complex multi-project solutions with service dependencies using Docker Compose. When you’re finished with this course, you’ll have the skills and knowledge of Docker and .NET Core needed to develop your own applications using this powerful and rapidly-advancing technology.

Table of contents
  1. Course Overview
  2. Getting Started with .NET Core and Docker
  3. Logging in Docker-based .NET Core Apps
  4. Configuration in Docker-based .NET Core Apps
  5. Building Docker Images for .NET Core Apps
  6. Simplify Complex Solutions with Docker Compose

Developing Java Apps with Docker

by Esteban Herrera

Apr 21, 2021 / 3h 27m

3h 27m

Start Course
Description

Are you interested in Docker but don't know exactly how to use it to solve the particular problems of developing Java applications?

In this course, Developing Java Apps with Docker, you’ll learn to use Docker to develop Java applications that run inside containers efficiently:

  1. explore many ways of building Java applications with Docker
  2. discover how to configure properties and variables for your application as well as how logging works inside containers
  3. learn how to use IDEs to develop and debug containerized Java applications
When you’re finished with this course, you’ll have the skills and knowledge of Docker needed to develop Java applications that run inside containers efficiently.

Table of contents
  1. Course Overview
  2. Getting Started with Docker for Java
  3. Building Java Applications with Dockerfiles
  4. Building Java Applications with Build Tools and Plugins
  5. Running Multi-container Java Applications with Docker Compose
  6. Configuring Java Applications in Containers
  7. Managing Application Logs with Docker
  8. Developing Java Applications in an IDE with Docker Support
  9. Debugging Java Applications Running in Containers

Developing Node.js Apps with Docker

by Piotr Gaczkowski

Jul 20, 2021 / 2h 3m

2h 3m

Start Course
Description

Application containers make it easier to deploy, scale, and monitor distributed applications. In this course, Developing Node.js Apps with Docker, you’ll learn to build and debug Node.js application containers. First, you’ll explore the different base images to use. Next, you’ll discover how to configure, run, and debug the containers. Finally, you’ll learn how to run complex systems with multiple containers. When you’re finished with this course, you’ll have the skills and knowledge of application containers needed to build modern applications.

Table of contents
  1. Course Overview
  2. Building Node Images
  3. Configuring and Running Containers
  4. Debugging Containers
  5. Interactive Debugging with IDEs
  6. Running Multi-tier Applications with Docker Compose

Developing Python Apps with Docker

by Steven Haines

May 17, 2021 / 2h 28m

2h 28m

Start Course
Description

Building highly scalable Python applications in a microservices-based architecture can be challenging. In this course, Developing Python Apps with Docker, you'll learn how to run highly scalable Python applications in Docker containers. First, you'll explore how to create a Dockerfile and containerize a Python application. Next, you'll discover how to create and connect multiple docker containers together using Docker Compose. Finally, you'll learn how to make your application production-ready and debug it while it's running in a container. When you're finished with this course, you'll have the skills and knowledge of using Python with Docker that is needed to build robust and scalable Python applications in Docker.

Table of contents
  1. Course Overview
  2. Getting Started with Python and Docker
  3. Running Multiple Containers with Docker Compose
  4. Making Your Application Production-ready
  5. Debugging Python Applications Running in Containers

Developing React.js Apps with Docker

by Saravanan Dhandapani

Mar 12, 2021 / 1h 52m

1h 52m

Start Course
Description

“It works in my machine” is a common phrase that you hear developers say when their code breaks in production. To overcome this problem, packaging the application code and its dependencies as one single deployable unit are essential, and docker has become the industry's de facto standard to achieve this. In this course, “Developing React.js apps in Docker”, you’ll learn to dockerize a React application and learn the steps to develop, debug and deploy it in production. First, you’ll explore the different components that make up a docker file. Next, you’ll discover how to create an image and run docker container. Then, you will learn how to deploy multiple containers, setup networking between them using docker compose. Finally, you’ll learn how to debug the application inside the container and get the container production ready. When you’re finished with this course, you’ll have the skills and knowledge of developing a react application in docker needed to create a highly agile, portable, and independent microservice component.

Table of contents
  1. Course Overview
  2. Dockerizing a Basic React App
  3. Building a Multi-container Application Using Docker Compose
  4. Enhancing the Multi-container Application
  5. Debugging and Getting the Multi-container Application Production-ready

Developing SQL Server Databases with Docker

by Chris Behrens

Feb 24, 2021 / 1h 51m

1h 51m

Start Course
Description

As our infrastructure world moves to containers, you need to understand how to move our databases to them as well. In this course, Developing SQL Server Databases with Docker, you’ll learn to create SQL Server Docker images. First, you’ll explore working with both Windows and Linux images. Next, you’ll discover how to resolve the tension between databases and container persistence. Finally, you’ll learn how to continually upgrade and manage your database schema. When you’re finished with this course, you’ll have the skills and knowledge of working with SQL Server images needed to containerize your database solutions.

Table of contents
  1. Course Overview
  2. Getting a SQL Server up and Running
  3. Tackling the Problem of Persistence
  4. Upgrading and Maintaining Your Image
  5. Managing SQL Server Containers in the Real World

Developing Go Apps with Docker

by Sangeeta Singh

Jul 21, 2021 / 2h 13m

2h 13m

Start Course
Description

Using docker for applications is really helpful in ensuring a fuss-free and smooth release to production. In this course, Developing Go Apps with Docker, you’ll learn to dockerize your Go applications as efficiently as possible, making app maintenance and debugging super easy. First, you’ll explore how to add environment variables and static files to our go app and build efficient and lean docker images. Next, you’ll discover how to use docker compose to manage the app and its configurations. Finally, you’ll learn how to make debugging and maintenance easy by extracting logs and integrating it with a CI/CD system. When you’re finished with this course, you’ll have the skills and knowledge of dockers needed to create, deploy, debug, and maintain a Golang app the best way you can.

Table of contents
  1. Course Overview
  2. Building a Multi-platform Docker Image with Dependencies
  3. Optimizing the App’s Docker Image
  4. Managing the App Using Docker-compose
  5. Debugging and Maintaining the Containerized App
  6. Integrating the App with CI/CD Pipelines