Understanding Dockerfile and docker-compose.yml: A Comprehensive Comparison