The single most important distinction
Confusing images and containers is the #1 reason new Docker users feel lost. Hold this in your head:
Image = read-only template (the class, the blueprint, the artifact).
Container = running instance with a writable layer on top (the object, the live thing).
Container = running instance with a writable layer on top (the object, the live thing).
One image, many containers
You build the image once. You run as many containers from it as you need. Each container has its own writable layer for runtime state — logs, temp files, anything the process writes that isn't on a mounted volume.
Containers are ephemeral by design
The writable layer dies with the container. docker rm removes the layer. This is a feature: it forces you to externalize state into volumes (data) or registries (images), which is exactly where state belongs.
If your app loses important data when a container is removed, the bug is that the data was never externalized. Not that containers are too fragile.