Skip to content

Container virtualization: Docker

Although you have used Docker in various courses (System Engineering Labs, Operating systems, ...) during the past years, it can't hurt to freshen up your knowledge.

Requirements

Go through the theory sources provided below (or find your own) to achieve the following requirements:

  • You understand the difference between containers and virtual machines, and know the pro's and con's of each.
  • You understand the role of Docker in containerization.
  • You understand the following concepts of Docker:
    • What is an image?
    • What is the difference with a container?
    • What are layers, and why does Docker use them?
    • What is a Docker registry and why do people use them?
    • What is a volume?
    • What is a port mapping?
    • What is a tag?
    • What are environment variables?
    • What is a Dockerfile?
  • You can install and use docker commands to use all of the concepts above.

    • In other words: you understand and can use all of the commands in following image:

  • You can write a basic Dockerfile.

  • You can build Docker images and run them as Docker containers.
  • You can push and pull Docker images to and from a Docker registry like DockerHub.
  • You understand the role of Docker Compose in containerization.
    • When do we use Docker Compose instead of just Docker?
  • You understand the following concepts of Docker Compose:
    • What is a docker-compose.yml?
    • How DNS works inside a single docker-compose.yml (e.g. how you can access another container from a container).
  • You can install docker compose and know how to start, stop, and update a Docker Container stack using docker compose commands.
  • You can view the logs generated by a Docker Compose stack.

Theory

Articles

Videos

Online manuals

Online courses

Books