IBM Developer Skills Network

Docker Essentials: A Developer Introduction

Learn how to use Docker containers to deploy and scale your applications. Create and run your first Docker container. Then, learn how to run containers in production and solve problems of orchestration such as high availability, service discovery, and reconciliation.

Start the Free Course

About this course

Containers are a standard way to package an application and all its dependencies so that the application can be moved between environments and run without changes. Containers work by isolating the application inside the container so that everything outside the container can be standardized.

Docker has provided a set of tools to simplify the use of containers. This has led to massive adoption of containers by developers and operators. In this course, you will focus mostly on Docker container technologies.

In this course, you'll follow a series of hands-on labs that demonstrate how to use containers for your applications. You'll start with the basics: creating and running your first Docker containers. By the end of the course, you'll get a brief introduction to running containers in production and how to solve problems of advanced orchestration such as high availability, service discovery, and reconciliation.

Course syllabus

  • Install and set up Docker
  • Lab 1: Run your first container
    • What are containers?
    • 1. Run a container
    • 2. Run multiple containers
    • 3. Remove the containers
  • Lab 2: Add CI/CD value with Docker images
    • Docker images
    • 1. Create a Python app (without using Docker)
    • 2. Create and build the Docker image
    • 3. Run the Docker image
    • 4. Push to a central registry
    • 5. Deploy a change
    • 6. Understand image layers
    • 7. Remove containers
  • Lab 3. Orchestrate applications with Docker Swarm
    • Container orchestration overview
    • 1. Create your first swarm
    • 2. Deploy your first service
    • 3. Scale your service
    • 4. Apply rolling updates
    • 5. Reconcile problems with containers
    • 6. Determine how many nodes you need
  • Final exam

Once you start building Docker images that you will want to share with your team, you should investigate IBM® Cloud Container Registry to safely store and access private Docker images in a highly available and scalable architecture.

IBM Cloud Container Registry provides a multi-tenant, highly available, and scalable private image registry that is hosted and managed by IBM. You can use the private registry by setting up your own image namespace and pushing Docker images to your namespace. As an added benefit, Vulnerability Advisor checks the security status of container images that are provided by IBM®, third parties, or added to your organization's registry namespace. If the Container Scanner is installed in each cluster, Vulnerability Advisor also checks the status of containers that are running.

Requirements

You don't need to know anything about containers to take this course, and no extensive programming experience is required. However, you must know how to run command-line tools from your workstation.

If you don't have Docker already, you need install Docker Community Edition (CE) or use the use Play-with-Docker for all the labs in this course. Docker installations are available from store.docker.com for your Mac, Windows, or Linux machine.

This course shows you how to install Docker.

You must also have a Docker Hub account to complete Lab 3. If you don't already have one, go to Play-with-Docker and follow the prompts to create an account.

Course instructor

John Zaccone

John Zaccone

Developer Advocate, IBM Digital Business Group

I am a Software Engineer with 6+ years of experience in software development, design and testing. My experience ranges from developing new features in large legacy DoD applications to designing services oriented architectures for enterprise applications.

I am a Docker Captain; a title I earned after dockerizing the entire application stack at Allianz in production. I commit to sharing my expertise back to the community and my clients by providing training, giving brown bags, organizing the Docker meetup in Richmond, and publishing content on my blog.

Course staff

Michelle Carey

Michelle Carey

IBM Courseware Developer

I create outcome-based, skill-building content for Cognitive Class and IBM Developer Skills Network, where developers of all stripes come to learn, play, and stay current on the latest tech. Building online courses that are relevant, immersive, and fun. We grow developers' skills in everything from blockchain to cloud, AI, and IoT app development.

Cesar Cantua

Cesar Cantua

IBM Courseware Developer

I lead a team through course creation and lifecycle management including: customer engagement, integration, implementation, editing, instructional design, market research, maintenance, upgrading and analytics.

Frequently Asked Questions

What web browser should I use?

Our learning platform (based on Open edX) works best with current versions of Chrome, Firefox or Safari. You can use Internet Explorer version 9 and above but we strongly recommend using Microsoft Edge as a replacement for Internet Explorer.

See our list of supported browsers for the most up-to-date information.

Earn your IBM Data Science Professional Certificate on Coursera.Learn more ...