Besides a look at how docker operates under the hood, we will also take a look at basic docker commands, structure of build files etc-. We will also take a look at how to use docker compose to stand up a basic development environment for micro services. We will also look at building minimal container images to save on network throughput, disk size and also faster deployments. We will also be looking at what container orchestrators are and will have a hands-on session about the amazon ECS container orchestrator.
A bit of networking and linux knowledge is assumed for this course. Linux knowledge will help you all throughout the course and networking knowledge will come in handy when we cover the concepts pertaining to networking namespaces.
Introduction and why we chose linux for the course.
Description on what docker is and why we use it
Birds eye view of various components in docker and it's interaction with OS
Differerence between user-space and kernel-space
Difference between containers and virtual machines.
Dockerfile, Docker images, Base image, docker pull
docker build, Running docker without root privileges
docker history command, From construct, ENV construct
Label construct, RUN construct, WORKDIR construct
ADD construct, COPY construct, EXPOSE construct, ENTRYPOINT construct, CMD construct, docker run command
docker repositories,docker hub, docker push,How is traffic routed to docker container?
docker ps command, sending signals to a process( docker kill, dockerstop)
How docker containers handle signals.
Introduction to how docker works under the hood
Introduction to cgroups
Cgroups cpu- hands on 1
Cgroups cpu- hands on 2
Cgroups cpu- hands on 3(cpu shares)
Cgroups cpu- hands on 4( cpuset + cpu share)
How docker restricts cpu using cgroups.
Introduction to cgoups memory subsystem
Cgroups memory subsystem hands-on
Introduction to namespaces
Basic networking and tcpdump
Ip subnetting and arp
ip,veth pairs, linux software bridge
Hands-on networking namespace.
How docker uses networking namespace
Pid namespaces hands-on
Mount namespaces hands-on
User namespaces hands-on
Introduction to linux capabilities + hands on
Capabilities in docker
Running docker containers as root
Docker compose introduction
Bringing up an application
Embedded dns, docker networks
Introduction to overlayfs
How docker uses overlayfs
How to take advantage of caching in docker builds
Building minimal containers in docker
Container orchestrators introduction
Overview of ECS orchestrator
Hands on(part 1)
Hands on(part 2)
ECS under the hood.
Introduction to docker daemon
Communicating to docker daemon over tcp/unix socket.