テストに OSX (および Windows) を使用している場合、Docker は仮想マシンを作成します。これは、Linux ベースのシステムでの実行とは少し異なります。
次のことを試してください。
docker-machine ip
これにより、仮想マシンの IP が返されます。私の例では、それは
192.168.99.100
実行docker ps
すると、ポート マッピングが表示されます (下の表を少しクリーンアップします)。
$ docker ps
CONTAINER ID IMAGE STATUS PORTS NAMES
42f88ac00e6f nginx-local Up 30 seconds 0.0.0.0:32778->80/tcp
0.0.0.0:32778->80/tcp
docker は、自分のマシン (この場合は仮想マシン) の 32778 (ランダムに割り当てられたポート) をコンテナーのポート 80 にマッピングしていることを意味します。
この情報はdocker port 42f88ac00e6f 80
(42f88ac00e6f はコンテナー ID または名前)から取得することもできます。
コンテナーの nginx にアクセスするために、仮想マシンの ip:32778 を使用できるようになりました。
http://192.168.99.100:32778/は、docker コンテナーの 80 ポートに転送されます (これを使用してローカルでテストします)
明らかに、上記のポートはネットワークからアクセスできませんが、ファイアウォールを設定して転送することができます =)