How to: 6. Learn Containers
A **container** is a standard unit of software that packages up code and all its dependencies, so the application runs quickly and reliably from one computing environment to another. 

**Docker** is by far the most popular container technology today. A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries, and settings. 

Here you need to know how to run containers, Docker Networking, Volumes, Dockerfiles, and run multiple containers with Docker-Compose.

Docker Compose is important as pre-requisite for Kubernetes. It is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application’s services. Then, with a single command, you create and start all the services from your configuration.

**Resources:**

- [What are Containers?](https://cloud.google.com/learn/what-are-containers)
FREE
- [Learning Containers From The Bottom Up](https://iximiuz.com/en/posts/container-learning-path/)
FREE
- [Docker Crash Course for Absolute Beginners by TechWorld with Nana](https://www.youtube.com/watch?v=pg19Z8LL06w)
FREE
- [Docker Tutorial for Beginners by TechWorld with Nana](https://www.youtube.com/watch?v=3c-iBn73dDE)
FREE
- [Ultimate Docker Compose Tutorial by TechWorld with Nana](https://www.youtube.com/watch?v=SXwC9fSwct8)
FREE
- [Docker Mastery: with Kubernetes + Swarm from a Docker Captain](https://www.udemy.com/course/docker-mastery/)
Udemy course
- [What is Service Mesh?](https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh)
FREE
- [DevOps with Kubernetes](https://devopswithkubernetes.com/)
FREE
- [OCI Specification](https://github.com/opencontainers/image-spec/blob/main/spec.md)