Course Outline
Introduction
- Overview of advanced Docker concepts and workflows
- Refresher on containerization principles and real-world use cases
- Key Docker terminology and core architectural components
- Course objectives and introduction to the hands-on environment
Docker Features and Architecture Overview
- The Docker Engine and its constituent parts
- Understanding the client, daemon, images, containers, and registries
- Docker architecture and the container lifecycle
- Docker Hub and the management of private registries
- Advanced CLI fundamentals for Docker users
- Techniques for managing Docker resources and configurations
Docker Setup
- Installation of Docker Community Edition
- Configuring the Docker operating environment
- Verification of Docker installation integrity
- Optimizing Docker for development and testing scenarios
- Management of Docker configuration files and storage
- Basics of troubleshooting Docker environments
Creating Custom Docker Images
- Understanding Docker image structure and layers
- Authoring effective Dockerfiles
- Best practices for Dockerfile instructions
- Managing the build context efficiently
- Building and tagging images
- Utilizing
.dockerignore - Optimizing image size and build performance
- Managing image versioning and tagging strategies
- Implementing multi-stage Docker builds
- Publishing images to container registries
Multi-Container 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 sequences
- Running and scaling multiple services
- Building application images using Compose
- Managing application configuration
- Debugging multi-container setups
- Best practices for Docker Compose
Challenges in Deploying Numerous Docker Applications
- Managing containers distributed across multiple hosts
- Application scaling and ensuring high availability
- Implementing service discovery
- Load balancing strategies
- Managing configurations and secrets
- Addressing persistent storage challenges
- Scaling monitoring and logging
- Executing rolling updates and application deployments
- Recovering from container and host failures
Maintaining Control with Container Orchestration
- Introduction to container orchestration concepts
- Benefits and limitations of orchestration platforms
- Comparison of Docker Swarm, Kubernetes, and other solutions
- Scheduling and workload management
- Service discovery and networking
- Scaling and self-healing application capabilities
- Rolling deployments and rollback mechanisms
- Resource management and workload isolation
- Criteria for selecting an appropriate orchestration platform
Kubernetes in Practice
- Kubernetes architecture and core components
- Understanding Pods, nodes, and clusters
- Working with Deployments and ReplicaSets
- Services and service discovery mechanisms
- Using ConfigMaps and Secrets
- Namespaces and organizing resources
- Scaling applications
- Performing rolling updates and rollbacks
- Kubernetes networking fundamentals
- Managing persistent storage
- Health checks and ensuring application resilience
- Deploying Docker applications onto Kubernetes
- Troubleshooting Kubernetes workloads
Advanced Docker Networking
- Docker networking architecture
- Bridge, host, overlay, and other network drivers
- Facilitating container-to-container communication
- Enabling communication between containers and external systems
- Creating custom Docker networks
- Implementing network isolation
- Service discovery mechanisms
- Port publishing and exposure
- Networking in multi-host environments
- Troubleshooting Docker networking issues
Docker Security
- Foundations 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
- Securing Docker images
- Performing image vulnerability scanning
- Secure management of secrets
- Protecting Docker registries
- Network security and isolation strategies
- Securing the Docker daemon
- Best practices for container security
Continuous Integration for Docker Applications
- Introduction to CI for containerized applications
- Automating the building of Docker images
- 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 into Existing Workflows
- Integrating Docker with established development workflows
- Containerizing existing 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
Best Practices for Containers and Orchestration
- Designing maintainable Docker images
- Optimizing container startup and performance
- Container lifecycle management
- Effective resource allocation
- Logging and monitoring strategies
- Configuration and secret management
- Achieving high availability and fault tolerance
- Scaling containerized applications
- Secure container deployment
- Versioning and release strategies
- Best practices for orchestration architecture
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
- Recap of image creation and container management
- Summary of multi-container application deployment
- Review of orchestration concepts and Kubernetes
- Overview 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 experience with Docker containers is required.
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.