Я думаю, что вы немного путаетесь с условиями.
У вас есть изображения и у вас есть контейнеры. У каждого из них есть имена.
Название изображения /:
Имя контейнера может быть любым.
Когда вы вытягиваете или выталкиваете изображения, часть решает, из какого или в какое хранилище вытащить или протолкнуть.
В docker-compose.yml вы определяете свои услуги.
Если вы определяете только «образ» для сервиса, но не используете контекст сборки, то ничего не будет построено. Образ будет загружен при запуске «docker-compose up»
Если вы определите контекст сборки («build»), то docker-compose создаст образ на основе этого контекста и затем пометит его именем, указанным в «image».
COMPOSE_PROJECT_NAME используется «docker-compose up» для именования контейнеров, а не изображений.
Вы также можете пометить изображение командой docker, если вам это нужно.
Надеюсь, это прояснит немного больше, и вы поймете, как настроить файл docker-compose. Если у вас все еще есть проблемы, напишите мне.