Achei tua pergunta um pouco ampla, então posso ter interpretado mal, mas acho que entendi tua dúvida. Quando tu cria um container do docker, basicamente é criado uma pasta que é tratada como o / do Linux, o caminho onde se encontra todos os arquivos do sistema. O Docker vê essa pasta como a raiz do sistema e começa a subir o container à partir de lá, com permissões limitadas para apenas poder mexer naquela pasta.

Quando tu copia teus arquivos pra dentro do container, eles são copiados pra essa pasta, e quando o container é derrubado e limpo (docker compose down e docker system prune, por exemplo) os arquivos dentro dessa pasta são excluídos. Para que isso não aconteça, tu precisa criar um volume e mapear ele para alguma pasta externa ao container. Por exemplo:

    my-app/
    ├─ backup/
    │  ├─ .gitkeep
    ├─ node_modules/
    ├─ src/
    │  ├─ index.js
    ├─ docker-compose.yml

nesse caso você mapeia a pasta do container para a pasta backup

Vou tentar explicar melhor, vi em um vídeo que não é recomendado subir um container com um banco de dados pra produção porque pode perder tudo que tem nele, daí surgiu essa dúvida na questão dos arquivos já que eles vem de um formulário de upload