dockerfileって環境構築用のバッチファイルみたいなものだと理解しても良い?

コンテナのコンソールを使って順に環境構築したものをコミットしてイメージ作る場合と比べてどんなメリットがあるかな。
仕上がりのイメージファイルの容量が少なくなったりする?