Course Outline
Introduction
- Exploration of advanced Docker concepts and operational workflows
- Revisiting core containerization principles and practical use cases
- Docker terminology and essential components
- Overview of course objectives and the hands-on lab environment
Docker Features and Architecture Overview
- The Docker Engine and its constituent parts
- Docker client, daemon, images, containers, and registry roles
- Docker architectural design and the container lifecycle
- Docker Hub and the use of private registries
- Advanced fundamentals of the Docker CLI
- Administering Docker resources and configurations
Docker Setup
- Installation of Docker Community Edition
- Configuration of the Docker environment
- Verification of Docker installation integrity
- Optimizing Docker for development and testing scenarios
- Managing Docker configuration files and storage
- Initial steps in Docker environment troubleshooting
Creating Custom Docker Images
- Understanding Docker image composition and layering
- Crafting efficient Dockerfiles
- Dockerfile directives and industry best practices
- Controlling the build context
- Building and labeling images
- Utilizing the
.dockerignorefile - Optimizing image size and build efficiency
- Versioning and tagging strategies for images
- Implementing multi-stage Docker builds
- Distributing images to container registries
Multi-Container Applications with Docker Compose
- Introduction to Docker Compose
- Defining application services via Compose files
- Configuring networks and volume mappings
- Handling environment variables
- Managing service dependencies and startup sequences
- Executing and scaling multiple services
- Building application images using Compose
- Managing application configuration settings
- Debugging multi-container application stacks
- Best practices for Docker Compose
Challenges in Deploying Numerous Docker Applications
- Managing containers across distributed hosts
- Scaling applications and ensuring availability
- Implementing service discovery mechanisms
- Distributing load via balancing techniques
- Managing configuration and sensitive data
- Addressing persistent storage complexities
- Monitoring and logging at scale
- Executing rolling updates and application rollouts
- Recovering from container and host failures
Maintaining Control via Container Orchestration
- Introduction to container orchestration principles
- Advantages and constraints of orchestration
- Comparative analysis of Docker Swarm, Kubernetes, and alternatives
- Scheduling and workload governance
- Service discovery and network configuration
- Scaling and self-healing application capabilities
- Managing rolling deployments and rollbacks
- Resource allocation and workload isolation
- Selecting the right orchestration platform
Practical Kubernetes
- Kubernetes architecture and essential components
- Concepts of Pods, nodes, and clusters
- Deployments and ReplicaSets
- Services and internal service discovery
- Using ConfigMaps and Secrets
- Namespaces and resource organization
- Scaling application workloads
- Rolling updates and rollback procedures
- Foundational Kubernetes networking
- Managing persistent storage
- Health checks and application resilience
- Deploying Docker applications onto Kubernetes
- Troubleshooting Kubernetes workloads
Advanced Docker Networking
- Docker networking architecture
- Bridge, host, overlay, and alternative network drivers
- Inter-container communication
- Communication between containers and external systems
- Creating custom Docker networks
- Implementing network isolation
- Service discovery mechanisms
- Port publishing and exposure strategies
- Networking in multi-host configurations
- Resolving Docker networking issues
Docker Security
- Fundamentals of Docker security
- Container isolation and security boundaries
- Running containers with appropriate privilege levels
- Managing users and permissions within containers
- Linux capabilities and security controls
- Hardening Docker images
- Scanning images for vulnerabilities
- Secure management of secrets
- Securing Docker registries
- Network security and isolation strategies
- Securing the Docker daemon
- Best practices for container security
Establishing a Continuous Integration Workflow for Docker
- Introduction to CI for containerized applications
- Automated building of Docker images
- Automated testing of images and containers
- Image tagging and version control
- Integrating source control with Docker build processes
- Automated vulnerability scanning of images
- Publishing images to registries
- Managing build artifacts
- Implementing automated quality assurance checks
- Designing a repeatable Docker CI pipeline
Integrating Docker Applications into Existing Workflows
- Integrating Docker with current development processes
- Containerizing legacy applications
- Connecting Docker with CI/CD platforms
- Managing dev, test, staging, and production environments
- Strategies for automated deployment
- Configuration management across multiple environments
- Registry integration techniques
- Deployment approvals and release management
- Monitoring application deployment status
- Ensuring consistency across all environments
Best Practices for Containers and Orchestration
- Designing maintainable Docker images
- Optimizing container startup times and performance
- Managing the container lifecycle
- Effective resource allocation
- Logging and monitoring strategies
- Configuration and secret management
- Ensuring high availability and fault tolerance
- Scaling containerized applications
- Secure container deployment practices
- Versioning and release strategies
- Architectural best practices for orchestration
Troubleshooting
- Diagnosing container startup failures
- Investigating application and container logs
- Inspecting container and image details
- Resolving networking problems
- Addressing storage and volume issues
- Diagnosing image build errors
- Troubleshooting Docker Compose setups
- Investigating resource and performance bottlenecks
- Kubernetes troubleshooting basics
- Hands-on troubleshooting exercises
Summary and Conclusion
- Recap of core Docker concepts
- Review of image creation and container administration
- Review of multi-container application deployment
- Review of orchestration concepts and Kubernetes
- Review of Docker networking and security
- Review of CI/CD integration
- Best practices for containerization and orchestration
- Final hands-on exercise
- Q&A and discussion
Requirements
- Prior practical experience with Docker containers.
Target Audience
- Software 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.