Who is this training for?
- System administrators
- People developing applications
Training objectives
- Use and manage containers in Docker
- Run an application in a Docker container
- Take advantage of Docker's ease of deployment in production
Summary
This training will allow you to master the use and management of containers in Docker, to run an application in a Docker container, and to take advantage of the ease of deploying Docker in production.
Course outline
How Docker Works and Architecture
- Project History
- Overview and Components
- Strengths and Weaknesses vs. Full Virtualization
- Client-Server Architecture
- Container, Image and Repository
Getting Started with Docker
- Launching a Container
- Working with a Running Container
- Managing Containers Managing Images
- Creating an Image from a Container's State
- Using a Dockerfile, Automating Your Imagery
- Building Your Own images, share them on Docker Hub or in a local registry
Managing data volumes
- Adding a volume to a container
- Reassigning and sharing volumes
- Mounting a host directory as a volume
- Best practice: the pattern data_container
Network exposure and links between containers
- Network modes offered by Docker
- Direct links and parent-child relationship
- Exposing network ports
Docker in production
- Automatically launching containers at startup
- Limiting the Storing memory and CPU containers
- Managing high availability and failover
- Managing backup
- Managing logging
Dockerizing your own application
- Preparation
- Dockerfile operating principles
- Creating the Dockerfile, useful guidelines
- Best and bad practices
- Multiple daemons in one container with Supervisord
Advanced use
- Creating a custom base image
- Using Docker Inspect
- Building your own image repository with Docker Registry
- Advanced Networking: Docker Limitations and Solutions
- Docker Compose: Managing a Multi-Container Application
Go Further
- Some Projects to Follow
Approach and methodology
Practical and progressive approach focused on experimentation. Participants learn how to use Docker through real-world labs, directly manipulating containers, images, and configurations in a real-world environment. They cover the key usage steps: creating images, deploying containers, managing volumes, and configuring networks, while understanding containerization best practices. The training focuses on:
- Learning by doing (labs and guided exercises)
- Step-by-step technical demonstrations
- Concrete use cases related to the deployment of applications
- Exchanges and problem solving
Prerequisites
- Good knowledge of Linux command line
- Basics of system administration
Recommendations
- Basics in system administration (Linux preferred)
- Knowledge of command line concepts (terminal)
- Notions of application development (applications, dependencies, services)
- Understanding of network concepts (ports, services, IP)
- Awareness of virtualization or cloud environments (asset)
