A hands on workshop for dive deep into the world of containers.
At the end of the workshop, you’ll be able to:
- Understand the fundamentals of containers
- Build docker images
- Containerize an existing application
- Use docker-compose to run multi-container applications
The course is designed for professional software developers and devops engineers interested to build containerized applications.
This course assumes that the participants have experience working with unix systems and deploying software on unix servers.
Session 1: Introduction to Docker
- Overview of Docker
- Overview of images, containers and registry
- Running simple docker containers
Session 2: Building Docker Images
- Building docker images using Dockerfile
- Pushing images to Docker Registry
Session 3: Running Docker Containers
- Using volumes to persist data
- Using environment variables
- Exposing ports
- Understanding Docker networking
Session 4: Troubleshooting
- Inspecting containers
- Troubleshooting live containers
- Managing Logs
Session 5: Advanced Patterns
- Inspecting docker images
- Optimizing the size of docker images
- multi-stage docker build
- Docker build arguments
Session 6: Deploy multi-container applications
- Introduction to docker-compose
- Deploying multi-container applications using docker-compose
Session 7: Docker in Production
- Introduction to Kubernetes
- Managed services for running containers
Session 8: Best Practices
- Repository Organization
- Building docker images in CI/CD
The suggested duration of the course is 2 days.
This is an interactive course and it is suggested to limit the number of participants to 12 or less for it to be effective.
The class time is spent on live demonstration of concepts using examples and hands-on programming exercises. Participants typically spend 50% of the time each day in practice sessions.
Reading material will be provided along with practice problems and references.
- A virtual machine with docker pre-installed will be provided to every participant during the workshop
Anand has been crafting beautiful software since two decades. He has strong product development experience with deep insights in system design, scalability, and developer experience. He has co-authored web.py, a micro web framework in Python, built Open Library at the Internet Archive, created a machine learning platform at Rorodata, trained hundreds of engineers through his deep-dive courses.