Ansibleは構成管理ツールだよ。マシンの構成を管理するだけ
アプリのデプロイは行わない。

もちろん頑張ればデプロイもできるけど、構成管理ツールで現実的なデプロイは
すでに完成されたアプリを動かす程度
いま自分らが開発している真っ最中のアプリは内容が多くなりがちで変更も頻繁に発生するので
Ansibleでやるのは大変。playbookが正しく動くかのテストが必要になる。
作成したplaybookはなるべく変更しないような、そういう使い方にとどめておいたほうが良い

んで、Dockerももちろんデプロイツールではない。デプロイを容易にするために
開発しているアプリとその周辺(ミドルウェアやライブラリ)をひとまとめにするもの。

デプロイする時に細かいコンポーネントに別れていたら、
それらを一つ一つデプロイするものとして書いていかなければいけないけど、
それらがひとまとめになっていれば一つだけデプロイすればすむ
それがDockerイメージ

デプロイするべきものが一つになるので、デプロイはツールを使うまでもないんじゃね?
って言いたくなるほど、シンプルになる。

そこまで来るとAnsibleを使って、Dockerイメージをデプロイするのもありだよw
そう。AnsibleとDockerは組み合わせて使うものなんだ。

まあGCPなどのクラウド使っていれば、その基本機能としてDockerイメージを
使う方法があるから、Ansibleを使わなくて良いんだけどね。