Course Outline
Introduction
- Exploration of advanced Docker concepts and workflows
- Refresher on containerization principles and practical use cases
- Key Docker terminology and core components
- Course objectives and an overview of the hands-on environment
Docker Features and Architecture Overview
- The Docker Engine and its constituent parts
- Understanding clients, daemons, images, containers, and registries
- Docker architecture and the container lifecycle
- Docker Hub and the use of private registries
- Advanced Docker CLI fundamentals
- Resource and configuration management in Docker
Docker Setup
- Installation of Docker Community Edition
- Configuration of the Docker environment
- Verification of Docker installation
- Configuring Docker for development and testing purposes
- Managing Docker configurations and storage
- Basic Docker environment troubleshooting
Building Custom Docker Images
- Understanding the structure of Docker images and layers
- Authoring efficient Dockerfiles
- Dockerfile syntax, instructions, and best practices
- Managing the build context
- Building and tagging images
- Utilizing
.dockerignore - Optimizing image size and build efficiency
- Managing image versioning and tagging
- Implementing multi-stage Docker builds
- Publishing images to a container registry
Running Multi-Container Applications with Docker Compose
- Introduction to Docker Compose
- Defining services via Compose files
- Configuring networks and volumes
- Handling environment variables
- Managing service dependencies and startup sequences
- Executing and scaling multiple services
- Building application images using Compose
- Managing application configurations
- Debugging multi-container setups
- Best practices for Docker Compose
Challenges in Deploying Multiple Docker Applications
- Managing containers across multiple hosts
- Ensuring application scaling and availability
- Implementing service discovery
- Load balancing strategies
- Managing configurations and secrets
- Addressing persistent storage challenges
- Monitoring and logging at scale
- Executing rolling updates and deployments
- Recovering from container or host failures
Maintaining Control Through Container Orchestration
- Introduction to container orchestration
- Advantages and limitations of orchestration
- Comparison of Docker Swarm, Kubernetes, and other platforms
- Scheduling and workload management
- Service discovery and networking mechanisms
- Scaling applications and self-healing capabilities
- Rolling deployments and rollback procedures
- Resource management and workload isolation
- Selecting the right orchestration platform
Kubernetes in Action
- Kubernetes architecture and core components
- Pods, nodes, and cluster structure
- Deployments and ReplicaSets
- Services and service discovery
- ConfigMaps and Secrets
- Namespaces and organizing resources
- Application scaling
- Rolling updates and rollbacks
- Kubernetes networking basics
- Persistent storage solutions
- Health checks and application resilience
- Deploying Docker applications to Kubernetes
- Diagnosing Kubernetes workload issues
Advanced Docker Networking
- Docker networking architecture
- Bridge, host, overlay, and other network drivers
- Inter-container communication
- Communication between containers and external systems
- Creating custom Docker networks
- Network isolation techniques
- Service discovery mechanisms
- Port publishing and exposure
- Networking in multi-host environments
- Troubleshooting Docker network issues
Docker Security
- Fundamentals of Docker security
- Container isolation and security boundaries
- Running containers with appropriate privileges
- Managing users and permissions within containers
- Linux capabilities and security controls
- Securing Docker images
- Scanning images for vulnerabilities
- Secure secret management
- Securing Docker registries
- Network security and isolation
- Docker daemon security
- Best practices for container security
Establishing a Continuous Integration Workflow for Docker
- Introduction to CI for containerized apps
- Automating Docker image builds
- Automated testing of images and containers
- Managing image tags and versions
- Linking source control with Docker builds
- Automated vulnerability scanning of images
- Publishing images to registries
- Handling build artifacts
- Implementing automated quality checks
- Designing a repeatable Docker CI pipeline
Integrating Docker into Existing Workflows
- Integrating Docker with current development processes
- Containerizing legacy applications
- Connecting Docker with CI/CD platforms
- Managing dev, test, staging, and prod environments
- Automated deployment strategies
- Configuration management across environments
- Registry integration
- Deployment approvals and release management
- Monitoring application deployments
- Ensuring consistency across all environments
Container and Orchestration Best Practices
- Designing maintainable Docker images
- Optimizing container startup and performance
- Managing the container lifecycle
- Efficient resource allocation
- Logging and monitoring strategies
- Managing configurations and secrets
- Ensuring high availability and fault tolerance
- Scaling containerized applications
- Securing container deployments
- Versioning and release strategies
- Best practices for orchestration architecture
Troubleshooting
- Diagnosing container startup issues
- Analyzing application and container logs
- Inspecting containers and images
- Resolving network connectivity problems
- Fixing storage and volume issues
- Diagnosing image build failures
- Troubleshooting Docker Compose applications
- Investigating resource and performance bottlenecks
- Basics of Kubernetes troubleshooting
- Hands-on troubleshooting exercises
Summary and Conclusion
- Review of essential Docker concepts
- Recap of image creation and container management
- Overview of multi-container deployment
- Recap of orchestration concepts and Kubernetes
- Review of Docker networking and security
- Review of CI/CD integration
- Best practices for containerization and orchestration
- Final practical exercise
- 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.