Course Outline
Introduction
- Overview of advanced Docker concepts and workflows
- Revisit of containerization principles and applicable use cases
- Docker terminology and core components
- Summary of course objectives and the hands-on learning environment
Overview of Docker Features and Architecture
- Docker Engine and its constituent parts
- Docker client, daemon, images, containers, and registries
- Docker architecture and the container lifecycle
- Docker Hub and private registry solutions
- Docker CLI essentials for advanced users
- Administration of Docker resources and configurations
Setting up Docker
- Installation of Docker Community Edition
- Configuration of the Docker environment
- Verification of the Docker installation
- Configuration of Docker for development and testing purposes
- Management of Docker configuration files and storage
- Basics of troubleshooting Docker environment issues
Building Your Own Docker Images
- Comprehension of Docker images and layering
- Writing efficient Dockerfiles
- Dockerfile instructions and industry best practices
- Management of build context
- Building and tagging images
- Utilizing the
.dockerignorefile - Optimization of image size and build performance
- Managing image versions and tagging strategies
- Multi-stage Docker builds
- Publishing images to a container registry
Running Multi-Container Docker Applications with Docker Compose
- Introduction to Docker Compose
- Definition of services using Compose files
- Configuration of networks and volumes
- Management of environment variables
- Service dependencies and startup sequencing
- Execution and scaling of multiple services
- Building application images via Compose
- Managing application configuration
- Debugging multi-container applications
- Best practices for Compose implementation
The Challenges of Deploying Many Docker Applications
- Managing containers across distributed hosts
- Application scaling and availability strategies
- Service discovery mechanisms
- Load balancing techniques
- Configuration and secret management
- Challenges related to persistent storage
- Monitoring and logging at scale
- Rolling updates and application deployment processes
- Recovery procedures for container and host failures
How Container Orchestration Helps You Maintain Control
- Introduction to container orchestration concepts
- Advantages and limitations of orchestration systems
- Comparison of Docker Swarm, Kubernetes, and alternative solutions
- Scheduling and workload management
- Service discovery and networking
- Application scaling and self-healing capabilities
- Rolling deployments and rollback procedures
- Resource management and workload isolation
- Selecting the appropriate orchestration platform
Kubernetes in Action
- Kubernetes architecture and core components
- Pods, nodes, and cluster management
- Deployments and ReplicaSets
- Services and service discovery
- ConfigMaps and Secrets management
- Namespaces and resource organization
- Application scaling techniques
- Rolling updates and rollback strategies
- Foundations of Kubernetes networking
- Persistent storage integration
- 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
- Interaction between containers and external systems
- Creation of custom Docker networks
- Network isolation techniques
- Service discovery methods
- Port publishing and exposure strategies
- Networking in multi-host environments
- Troubleshooting Docker networking issues
Docker Security
- Foundations of Docker security
- Container isolation and security boundaries
- Executing containers with appropriate privilege levels
- Managing users and permissions within containers
- Linux capabilities and security controls
- Securing Docker images
- Vulnerability scanning of images
- Secure management of secrets
- Securing Docker registries
- Network security and isolation measures
- Docker daemon security hardening
- Best practices for container security
Setting up a Continuous Integration Workflow for Docker Applications
- Introduction to CI for containerized applications
- Automated building of Docker images
- Automated testing of Docker images and containers
- Image tagging and version management
- Integration of source control with Docker builds
- Automated image vulnerability scanning
- Publishing images to registries
- Management of build artifacts
- Implementation of automated quality checks
- Designing a reproducible Docker CI pipeline
Integrating Docker Applications into an Existing Workflow
- Integration of Docker with current development workflows
- Containerization of existing applications
- Integration of Docker with CI/CD platforms
- Management of development, testing, staging, and production environments
- Automated deployment strategies
- Configuration management across various environments
- Registry integration
- 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
- 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
- Diagnosis of container startup failures
- Analysis of application and container logs
- Inspection of containers and images
- Resolution of networking issues
- Resolution of storage and volume problems
- Diagnosis of image build failures
- Troubleshooting Docker Compose applications
- Investigation of resource and performance issues
- Basics of Kubernetes troubleshooting
- 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
- Open discussion and Q&A
Requirements
- Prior experience in working with Docker containers is required.
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.