Docker for macの各コンテナへホスト側からアクセスする際のアドレスは、localhostです。
docker-machineの場合はdocker-machine envでIPアドレスを確認をする必要があるので、その点楽ですね。
しかしlocalhostゆえにホスト側のシステムとバッティングし、うまくコンテナにアクセスできない場合が出てきます。
それが今回はまったDockerのPostgreSQLへのホスト側からアクセスです。
通常ホスト側からコンテナのPostgreSQLにアクセスする場合はオプションで-h localhostを指定すれば可能です。
$ psql -U ユーザー名 -d DB名 -h localhost
しかし、もしホスト側のPostgreSQLが起動している場合、psqlで自動的にホスト側のサーバーにアクセスしてしまうためロール又は、DBが存在しません。というエラーが出てしまいます。
その解決方法としてはlocalのPostgreSQLのサーバーを停止することです。
brewでinstallしている場合は以下コマンドでホスト側のPostgreSQLの停止を行えます。
$ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
再度
$ psql -U ユーザー名 -d DB名 -h localhost
でアクセスすればDockerのPostgreSQLにアクセスできるはずです。