Два центральных понятия, которые важно не путать.
Образ (image) — это неизменяемый «слепок» приложения со всеми зависимостями: код, среда выполнения, библиотеки, настройки. Образ похож на установочный диск или шаблон — его создают один раз и не меняют.
Контейнер (container) — это запущенный экземпляр образа, живой изолированный процесс. Из одного образа можно запустить сколько угодно контейнеров, как из одного класса создают много объектов.
Аналогия: образ — это рецепт торта, а контейнер — испечённый по нему торт. По одному рецепту пекут много тортов; рецепт не меняется, а торты можно есть (запускать, останавливать, удалять).
Образы хранятся в реестрах. Главный публичный реестр — Docker Hub: там лежат готовые образы баз данных, веб-серверов, языков (nginx, postgres, node, python). Их скачивают и запускают за одну команду — не нужно ничего устанавливать вручную.