Files
awesome-kubernetes/docs/docker.md
2024-09-01 17:54:29 +02:00

56 KiB
Raw Blame History

Docker

  1. Introduction and Tutorials
  2. Docker Best Practices
  3. Docker Networking
  4. Docker Volumes
  5. Debugging
  6. Docker CLI
  7. Docker Extensions
  8. Docker Swarm
  9. Awesome Lists
  10. Docker VS Kubernetes
  11. Docker Patterns and Antipatterns
  12. Docker Security
  13. How To Build a Smaller Docker Image and write dockerfiles efficiently
  14. Reducing Build Time
  15. Modify containers without rebuilding
  16. Docker Tools
  17. Docker and WSL2
  18. Docker and Docker Swarm Cheat sheets
  19. Docker Compose
  20. Moving Linux Services Into Containers
  21. Windows Containers
  22. Portainer
  23. DockStation
  24. Linux Container Base Images
  25. Blogs
  26. Cloud Native Buildpacks
  27. Alternatives to Docker. Available alternatives to Docker for OCI compliant container image building
  28. Videos and Podcasts
  29. Tweets

Introduction and Tutorials

Docker Best Practices

Docker Networking

Docker Volumes

Debugging

Docker CLI

  • docs.docker.com: docker buildx imagetools Commands to work on images in registry
  • Who is still copying images between registries with:
    • docker cli:

      • docker pull
      • docker tag
      • docker push
    • Use:

      • crane cp
    • Or even:

      • cosign cp
    • It's faster, and supports multi-arch (and cosign copies signatures/sboms/attestations)

Docker Extensions

Docker Swarm

Awesome Lists

Docker VS Kubernetes

Docker Patterns and Antipatterns

Docker Security

How To Build a Smaller Docker Image and write dockerfiles efficiently

Reducing Build Time

Modify containers without rebuilding

Docker Tools

Docker and WSL2

Docker and Docker Swarm Cheat sheets

Docker Compose

Moving Linux Services Into Containers

Windows Containers

Portainer

DockStation

Linux Container Base Images

Blogs

Cloud Native Buildpacks

Alternatives to Docker. Available alternatives to Docker for OCI compliant container image building

Videos and Podcasts

Click to expand!

Tweets

Click to expand!

Environment variables in Docker:

Environment variables are dynamic-named values that affect how our app will behave when running.

We can define them with Docker:
- at runtime
- in the Dockerfile
- in the Compose file (2 ways)

Let's see in detail in 1 minute:

1/5

— Francesco Ciulla (@FrancescoCiull4) May 15, 2021
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Introduction to Docker🐳@Docker is an open-source platform for deploying and managing containerized applications. It allows developers to easily package their applications into containers that can be deployed on every machine with a valid Docker installation.

Thread 🧵👇

— Gabriel Tanner (@GabrielTanner14) December 13, 2021
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

How to grasp Containers and Docker (Mega Thread)

When I started using containers back in 2015, I thought they were tiny virtual machines with a subsecond startup time.

It was easy to follow tutorials from the Internet on how to put your Python or Node.js app into a container...

— Ivan Velichko (@iximiuz) August 7, 2021
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Okay @awscloud Lambda folks: when should I use Docker containers as the packaging format for functions vs. using native runtimes? Looking for general guidance here.

— Corey Quinn (@QuinnyPig) March 28, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Mostly bc of the package size limit.
Standard code zip: max 250 MB
Docker image: max 10 GB

If you do anything in Python with ML libs, you will need Docker...

Why use native runtimes otherwise? Cold start.
Docker: 750-1000 ms
Node/Python: 250-300 ms

— Maciej Radzikowski (@radzikowski_m) March 28, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Docker Compose + DockerSlim = ❤️@DockerSlim can make your images much smaller (hence, faster and securer), but it requires launching containers for runtime analysis.

Real apps, though, rarely run in isolation... Docker knew that and built Compose.

Now, behold the synergy! 🔽 pic.twitter.com/n6NlJokC95

— Ivan Velichko (@iximiuz) July 13, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Debunking Container Myths 🧵

A (never-ending) series of articles that I started writing a couple of years ago to fix my own misconceptions about containers 🔽 pic.twitter.com/bD7Iw48ere

— Ivan Velichko (@iximiuz) August 28, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

What Is a Distroless Container Image? 🧵

Go (programming language) is famous for its statically linked binaries. You can take a Go executable, drop it into a "FROM scratch" container, and call it a day.

But there might be a problem (keep reading) 👇 pic.twitter.com/kskCI3rqCC

— Ivan Velichko (@iximiuz) September 5, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Who is still copying images between registries with:
docker pull <src>
docker tag <src> <dst>
docker push <dst>

Use:
crane cp <src> <dst>

Or even:
cosign cp <src> <dst>

It's faster, and supports multi-arch (and cosign copies signatures/sboms/attestations)

— Matt Moore ⛓🚀 (@mattomata) October 13, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

Want to master Docker and become a container expert
...but don't know how to even start? 🔽

Here is the learning order that helped me:

1. Containers: how Linux does them
2. Images: why they are needed
3. Managers: many containers, one host
4. Orchestrators: many hosts, one app pic.twitter.com/HaXaGnSMkU

— Ivan Velichko (@iximiuz) December 9, 2022
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>