This course provides hands-on instruction to the basics of Docker, a containerization technology that is used for running, wrapping, distributing and publishing software and workflows. During the workshop, you will learn to install, integrate and run Docker both in a sandbox and in your working environment. Variety of hands-on exercises will help you quickly grow from a beginner into a seasoned user. Docker containers provide a lightweight way for IT Operations teams to build, ship, and run any app, anywhere and we intend that this hands-on workshop will provide a friendly and welcoming environment for trying it out. People new to Docker are welcome to attend! We do suggest that attendees have some familiarity with the UNIX command line.
During this course you will learn how to:
- Install the Docker Engine
- Create their first Docker container
- Build Docker images
- Store and retrieve Docker images from Docker Hub
- Build containers from images
- Use Docker for sandboxing and testing
- Deploy applications with Docker
Part 1. Learning Docker
This section will begin the introduction to Docker. We will talk about what Docker is, explain containers and explore the key differences between server and application virtualization. Then we continue our exploration by installing the Docker Engine, exploring the key architectural components and then finally begin installing images and working with our containers.
- Introduction to Docker
- Containers Vs. Virtual Machines
- Docker Architecture
- The Docker Hub
- Docker Installation
- Creating Our First Image
- Working With Multiple Images
- Packaging A Customized Container
- Running Container Commands With Docker
- Exposing Our Container With Port Redirects
Exercise: Installation and Image Setup
Exercise: Creating Images from Containers
Part 2. Docker Builds and Deployments
We will talk about building custom images by layering changes in containers and using them to commit those changes to new images. We will also demonstrate more advanced deployments using Dockerfile and how to save our images to the Docker Hub when they are ready.
- Container Snapshots
- Attach to a Running Container
- Removing Images
- Directory Structure
- Services That Run on Startup
- Dockerfile: Tying It Together
- Pushing Images to Docker Hub
- Adding External Content
- Image Volume Management
- Advanced Container Network Management
Exercise: Creating Custom Image from a Dockerfile
Exercise: Managing Containers
Exercise: Adding External Content to Containers
Part 3. Docker Internals
Now that we have all of the basics down, we are going to start exploring the advanced features and power of the Docker Client. We will demonstrate how to link containers to each other, show process communication, explore how to script determining Container internals and more. We will also be exploring how to take control of our Docker Client command line so we can customize everything from the IP address of our Containers to how they are named.
- Interactive Shell Control
- Previous Container Management
- Container Routing
- Sharing Container Resources
- Committing a Running Container (Snapshot Images)
- Container Linking and Communication
- Taking Control of Ports
- Five Useful Docker CLI Commands
- More Useful Docker CLI Commands
- Optimizing Our Dockerfile Builds
Exercise: Base Image Maintenance and Cleanup
Exercise: Exposing Container Ports to the Host
Exercise: Advanced Container Creation at the Command Line