/learning-docker-the-hard-way

:whale: Want to learn Docker? Check this out!

Primary LanguageGoMIT LicenseMIT

Learning Docker - The hard way

This tutorial covers Docker, a tool which provides a high-level interface for managing Linux containers in a convenient way. We will walk through its basic and advanced features, but also take our time to demystify the underlying technologies which make containers possible in the first place.

This guide aims at undergraduate or graduate CS students which have little or no knowledge of Docker and/or container technology in general.

Outline

  • Level: Beginner

  • Level: Intermediate

    • How to build your own Docker images (tbd)
    • Dockerfile best practices (tbd)
    • Multi-container apps with Docker Compose (tbd)
    • Docker Machine (tbd)
    • Docker Swarm Mode (tbd)
    • Excursion: The Raft consensus protocol (tbd)
    • Networking in Docker (tbd)
  • Level: Advanced

    • Multi-stage Docker image builds (tbd)
    • Image signing and Notary (tbd)
    • Docker secrets management (tbd)
    • Further security aspects (tbd)
    • Excursion: Docker storage drivers (tbd)
    • Excursion: Plumbing in Docker (tbd)
    • runC and containerd (tbd)

Contributing

You went through the tutorial and encountered a mistake, bug or any question you did not find an answer to? Feel free to open an issue or submit your improvements as a PR. Contributions are always welcome.

Credits

  • A.Mouat. Using Docker: Developing and Deploying software with Containers. O'Reilly Media, Dec. 2015
  • Docker, Inc. Docker Documentation. 2017. URL: https://docs.docker.com/