A comprehensive course designed to teach you everything you need to know about Docker.
Docker is a powerful platform that enables developers to build, ship, and run applications in containers.
This course provides a comprehensive guide to Docker, starting from its history and core concepts, and progressing through practical steps for creating, managing, and optimizing containers.
Whether you are new to containerization or looking to deepen your understanding, you will find valuable insights and hands-on examples to help you master Docker for modern software development.
To get the most out of this course, I recommend first watching all the videos on my YouTube channel for a complete overview of all the covered topics...
Then, if you want to dive deeper, come here and reread all the topics, or just the ones you understood less, perhaps experimenting with the various examples with the console in your hand.
You can find all the course videos on YouTube in the following playlist inside my channel.
Below is a list of topics covered in this course:
- History of Docker and containers
- Our training environment
- Run our first container
- Run containers in background
- Restarting and attaching to containers
- Understanding Docker images
- Building images interactively
- Building images with a Dockerfile
- Entrypoint and command
- Copying files during the build
- Reduce images size
- Images registry
- Naming, labeling, and inspecting
- Getting inside a Container
- Understanding Docker networks
- Container network drivers
- Service discovery with containers
- Working with volumes
- Local development workflow
- Compose for development stack
- Advanced Dockerfile syntax
- Application configuration
- Limiting resources
- Logging and monitoring
- Multi-architecture builds
- Common Docker settings
- Container internals
This course is available in multiple languages to ensure that learners from different backgrounds can benefit from the material. Currently, you can attend the course in the following languages:
Below is a list of resources available for this course:
- Examples source codes
- Slides that inspired this course
Contributions are welcome!
If you want to share this course, or if you want to contribute to the contents, or if you want to support my project with a donation, please see this page for more information.
A heartfelt thank you to Alain Martini for introducing me to containers, and to Jérôme Petazzoni, whose slides were instrumental in shaping this course.
This course content is released under the Creative Commons license.
The code in this repository is licensed under the MIT License.
For more information check the LICENSE file.