これまで Docker はローカルの開発用環境にしか使っていなかったので、今まであまり気にしてなかったり知らなかったことですが、ports だと外部にもポートが開放されるのでコンテナ間だけでポートを使いたい場合は expose を使おうって話です。