Course Outline
Introduction
- Introduction to advanced Docker concepts and operational workflows
- Revisit of containerization principles and real-world use cases
- Overview of Docker terminology and essential components
- Presentation of course goals and the hands-on environment
Overview of Docker Features and Architecture
- The Docker Engine and its constituent parts
- Understanding the Docker client, daemon, images, containers, and registries
- Docker architecture and the container lifecycle
- Docker Hub and private registry management
- Advanced CLI fundamentals for Docker users
- Administration of Docker resources and configuration settings
Setting up Docker
- Installation of Docker Community Edition
- Configuration of the Docker environment
- Verification of the Docker installation status
- Tailoring Docker for development and testing purposes
- Management of Docker configuration and storage settings
- Basics of troubleshooting the Docker environment
Building Your Own Docker Images
- Comprehending Docker images and layer structure
- Authoring effective Dockerfiles
- Dockerfile directives and industry best practices
- Handling the build context efficiently
- Image construction and tagging strategies
- Utilization of the
.dockerignorefile - Optimization of image size and build speed
- Control of image versions and tags
- Implementation of multi-stage Docker builds
- Publication of images to a container registry
Running Multi-Container Docker Applications with Docker Compose
- Familiarization with Docker Compose
- Definition of services via Compose files
- Configuration of networks and volumes
- Management of environment variables
- Handling service dependencies and startup sequences
- Execution and scaling of multiple services
- Construction of application images using Compose
- Oversight of application configuration
- Debugging techniques for multi-container setups
- Best practices for Docker Compose
The Challenges of Deploying Many Docker Applications
- Container management across multiple hosts
- Strategies for application scaling and availability
- Service discovery mechanisms
- Load balancing techniques
- Management of configuration and secrets
- Addressing persistent storage challenges
- Monitoring and logging at scale
- Execution of rolling updates and application deployments
- Recovery procedures for container and host failures
How Container Orchestration Helps You Maintain Control
- Introduction to the concept of container orchestration
- Analysis of orchestration benefits and limitations
- Comparison of Docker Swarm, Kubernetes, and alternative solutions
- Scheduling and workload management strategies
- Service discovery and networking integration
- Scaling and self-healing application features
- Implementation of rolling deployments and rollbacks
- Resource management and workload isolation
- Selection of an appropriate orchestration platform
Kubernetes in Action
- Kubernetes architecture and core structural components
- Understanding Pods, nodes, and clusters
- Management of Deployments and ReplicaSets
- Services and service discovery mechanisms
- Utilization of ConfigMaps and Secrets
- Namespaces and resource organization
- Application scaling techniques
- Rolling updates and rollback processes
- Foundations of Kubernetes networking
- Persistent storage integration
- Health checks and application resilience strategies
- Deployment of Docker applications to Kubernetes
- Troubleshooting methods for Kubernetes workloads
Advanced Docker Networking
- Architecture of Docker networking
- Analysis of Bridge, host, overlay, and other network drivers
- Communication protocols between containers
- Interaction between containers and external systems
- Creation of custom Docker networks
- Implementation of network isolation
- Service discovery techniques
- Port publishing and exposure strategies
- Networking in multi-host environments
- Diagnosis of Docker networking issues
Docker Security
- Foundations of Docker security
- Container isolation and security boundary definition
- Execution of containers with appropriate privilege levels
- User and permission management within containers
- Application of Linux capabilities and security controls
- Protection of Docker images
- Scanning images for vulnerabilities
- Secure management of secrets
- Hardening of Docker registries
- Network security and isolation measures
- Security of the Docker daemon
- Adoption of container security best practices
Setting up a Continuous Integration Workflow for Docker Applications
- Introduction to CI for containerized applications
- Automation of Docker image building
- Automated testing of Docker images and containers
- Image tagging and version control strategies
- Integration of source control with Docker builds
- Automation of image vulnerability scanning
- Publication of images to registries
- Management of build artifacts
- Implementation of automated quality checks
- Design of a repeatable Docker CI pipeline
Integrating Docker Applications into an Existing Workflow
- Integration of Docker with current development workflows
- Containerization of legacy applications
- Connection of Docker with CI/CD platforms
- Management of development, testing, staging, and production environments
- Automation of deployment strategies
- Configuration management across various environments
- Registry integration techniques
- Deployment approvals and release management
- Monitoring of application deployments
- Maintenance of consistency across environments
Container and Orchestration Best Practices
- Design of maintainable Docker images
- Optimization of container startup and performance
- Management of the container lifecycle
- Efficient resource allocation
- Strategies for logging and monitoring
- Management of configuration and secrets
- Ensuring high availability and fault tolerance
- Scaling of containerized applications
- Secure deployment of containers
- Versioning and release strategy implementation
- Best practices for orchestration architecture
Troubleshooting
- Diagnosis of container startup failures
- Investigation of application and container logs
- Inspection of containers and images
- Resolution of networking issues
- Fixing storage and volume problems
- Diagnosis of image build failures
- Troubleshooting Docker Compose applications
- Investigation of resource and performance bottlenecks
- Basics of Kubernetes troubleshooting
- Practical troubleshooting exercises
Summary and Conclusion
- Recap of key Docker concepts
- Review of image creation and container management
- Assessment of multi-container application deployment
- Summary of orchestration concepts and Kubernetes
- Review of Docker networking and security protocols
- Assessment of CI/CD integration
- Reiteration of containerization and orchestration best practices
- Final hands-on exercise
- Open Q&A and discussion
Requirements
- Prior hands-on experience with Docker containers.
Target 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.