Building Images
This course covers different approaches for building images. By the end of this course, you'll be well positioned to start building images easily and maintain them over time.
Course Outline
Introduction to Containerization
This lesson provides a brief introduction to containerization and sets the groundwork for the rest of the course.
Building Images with Dockerfile: Basic Syntax, App Launch, Tags, and Build Context
In this lesson, we run through a few introductory examples to cover the basic syntax of Dockerfiles, configuring the application launch command, using tags appropriately, and controlling the build context.
Building Images with Dockerfile: App Shutdown, Image Layers, and Caching
In this lesson, we explore how Dockerfile configuration can impact application shutdown behavior. We also cover the layered nature of Docker images, the ability of layers to function as cache, and strategies for maximizing caching opportunities during image builds.
Building Images with Dockerfile: Runtime User, Multi-Stage Builds, Inspecting Images
In this lesson we cover two basic strategies for improving security: setting the runtime user, and reducing the size and surface area of runtime images. We also look at two utilities — docker inspect
and dive
— for inspecting images.
Building Images for Java Applications with JIB
Jib is a tool for building images from Java applications without using Docker or Dockerfiles. In this lesson we learn how to use Jib's Maven and Gradle build plugins to configure and build images.
Building Images with Buildpacks: The Cloud Native Buildpacks Project
In this lesson we learn about the Cloud Native Buildpacks project, which provides a simple though sophisticated approach for building images in a way that can be easily scaled and operationalized. We cover the motivations for the project, its API-based approach, and some of the implementations available in the ecosystem.
Building Images with Buildpacks: pack, Spring Boot, kpack, and Paketo Buildpacks
In this lesson we explore the features and functionality of Cloud Native Buildpacks using three tools (platforms) for building images: the pack CLI, Spring Boot build plugin, and kpack hosted service. We also explore the modularized buildpacks provided by Paketo Buildpacks for building images in a variety of languages.
Top Takeaways from the Building Images Course
Before you move onto the next course, let’s take a moment to review what we learned in the Building Images course.