Course Outline
Introduction
- Exploring advanced Docker concepts and workflows
- Revisiting core containerization principles and use cases
- Key Docker terminology and essential components
- Course objectives and an overview of the hands-on environment
Overview of Docker Features and Architecture
- The Docker Engine and its constituent parts
- Client, daemon, images, containers, and registries
- Docker architecture and the container lifecycle
- Docker Hub and private registry services
- Advanced Docker CLI fundamentals
- Managing Docker resources and configuration files
Setting up Docker
- Installing Docker Community Edition
- Configuring the Docker environment
- Verifying the Docker installation
- Tuning Docker for development and testing scenarios
- Managing Docker configuration and storage settings
- Basics of troubleshooting the Docker environment
Building Your Own Docker Images
- Understanding Docker images and layering
- Writing efficient Dockerfiles
- Dockerfile instructions and industry best practices
- Managing build context effectively
- Building and tagging images correctly
- Using
.dockerignore - Optimizing image size and build performance
- Managing image versions and tags
- Implementing multi-stage Docker builds
- Publishing images to a container registry
Running Multi-Container Docker Applications with Docker Compose
- Introduction to Docker Compose
- Defining services via Compose files
- Configuring networks and volumes
- Managing environment variables
- Handling service dependencies and startup order
- Running and scaling multiple services
- Building application images using Compose
- Managing application configuration
- Debugging multi-container setups
- Docker Compose best practices
The Challenges of Deploying Many Docker Applications
- Managing containers across multiple hosts
- Addressing application scaling and availability
- Service discovery mechanisms
- Load balancing strategies
- Handling configuration and secret management
- Challenges with persistent storage
- Monitoring and logging at scale
- Rolling updates and application deployment
- Recovering from container and host failures
How Container Orchestration Helps You Maintain Control
- Introduction to container orchestration
- Advantages and constraints of orchestration
- Comparing Docker Swarm, Kubernetes, and other solutions
- Scheduling and workload management
- Service discovery and networking
- Scaling and self-healing applications
- Rolling deployments and rollbacks
- Resource management and workload isolation
- Selecting the right orchestration platform
Kubernetes in Action
- Kubernetes architecture and core components
- Pods, nodes, and clusters
- Deployments and ReplicaSets
- Services and service discovery
- ConfigMaps and Secrets
- Namespaces and resource organization
- Scaling applications
- Rolling updates and rollbacks
- Kubernetes networking fundamentals
- Persistent storage options
- Health checks and application resilience
- Deploying Docker applications to Kubernetes
- Troubleshooting Kubernetes workloads
Advanced Docker Networking
- Docker networking architecture
- Bridge, host, overlay, and other network drivers
- Container-to-container communication
- Communication between containers and external systems
- Creating custom Docker networks
- Network isolation techniques
- Service discovery methods
- Port publishing and exposure
- Networking in multi-host environments
- Troubleshooting Docker networking issues
Docker Security
- Docker security fundamentals
- Container isolation and security boundaries
- Running containers with appropriate privileges
- Managing users and permissions inside containers
- Linux capabilities and security controls
- Securing Docker images
- Image vulnerability scanning
- Secure management of secrets
- Securing Docker registries
- Network security and isolation
- Docker daemon security hardening
- Container security best practices
Setting up a Continuous Integration Workflow for Docker Applications
- Introduction to CI for containerized applications
- Automating Docker image builds
- Automated testing of Docker images and containers
- Image tagging and version management
- Integrating source control with Docker builds
- Automated image vulnerability scanning
- Publishing images to registries
- Managing build artifacts
- Implementing automated quality checks
- Designing a repeatable Docker CI pipeline
Integrating Docker Applications into an Existing Workflow
- Integrating Docker with existing development workflows
- Containerizing legacy applications
- Integrating Docker with CI/CD platforms
- Managing development, testing, staging, and production environments
- Automated deployment strategies
- Configuration management across environments
- Registry integration
- Deployment approvals and release management
- Monitoring application deployments
- Maintaining consistency across environments
Container and Orchestration Best Practices
- Designing maintainable Docker images
- Optimizing container startup and performance
- Container lifecycle management
- Effective resource allocation
- Logging and monitoring strategies
- Configuration and secret management
- High availability and fault tolerance
- Scaling containerized applications
- Secure container deployment
- Versioning and release strategies
- Orchestration architecture best practices
Troubleshooting
- Diagnosing container startup failures
- Investigating application and container logs
- Inspecting containers and images
- Troubleshooting networking issues
- Resolving storage and volume problems
- Diagnosing image build failures
- Troubleshooting Docker Compose applications
- Investigating resource and performance issues
- Kubernetes troubleshooting fundamentals
- Practical troubleshooting exercises
Summary and Conclusion
- Review of key Docker concepts
- Review of image creation and container management
- Review of multi-container application deployment
- Review of orchestration concepts and Kubernetes
- Review of Docker networking and security
- Review of CI/CD integration
- Containerization and orchestration best practices
- Final hands-on exercise
- Questions and discussion
Requirements
- Prior experience working with Docker containers.
Audience
- Developers
- DevOps Engineers
- System Administrators
Testimonials (7)
The trainer's broad knowledge, his abilities to solve issues that spontaneously occurred during the practice sessions. Also, the exercises themselves are adequate to help fix the subjects contained in the course.
Cosmin - Ness Digital Engineering
Course - Advanced Docker
The pace and the fact that we went in depth really quickly but I think we could went more in depth even from first day (considering that it is a docker advanced training, we suppose that some basic docker knowledge is there).
SORIN ROMAN - Ness Digital Engineering
Course - Advanced Docker
the trainer is a nice person and explained everything very well, in a structured way that makes sense and flows. cool exercises for practice
Andreas - Ness Digital Engineering
Course - Advanced Docker
The training had a good pace, tailored to the experience of every participant. Also, it has a nice balance of theoretical notions and practical exercises.
Laurentiu - Ness Digital Engineering
Course - Advanced Docker
The structure and the way it was presented. To me, this training was like a journey: from app to docker containers, to kubernetes. The exercises were engaging and on point
Andrei - Ness Digital Engineering
Course - Advanced Docker
The simple explanation and that the course was didactic
Diana Martinez - AT&T
Course - Advanced Docker
The instructor is a well-experienced developer with Docker and he likes to share his experiences with the group. DaDesktop is a very nice platform to work with.