私の現在の仕事では、docker-compose で作成された開発環境があります。1 つのコンテナーは、他のコンテナーへのルーティングを提供する nginx です。Windows と osx の同僚にはすべて問題なく動作しているようです。しかし、私のシステム (osx El Capitan) では、ポート 80 で nginx コンテナーにアクセスする際に問題があります。
docker-compose.yml からコンテナのセットアップがあります
nginx:
build: ./dockerbuild/nginx
ports:
- 80:80
links:
- php
volumes_from:
- app
... and more
特別なことは何もありません。./dockerbuild/nginx
どこからでも知っているように、nginx config だけです。
と ですべてを実行するdocker-compose create
とdocker-compose start
。じゃあdocker ps
くれよ
3b296c1e4775 docker_nginx "nginx -g 'daemon off" About an hour ago Up 47 minutes 0.0.0.0:80->80/tcp, 443/tcp docker_nginx_1
しかし、たとえばcurlを介してアクセスしようとすると、エラーが発生します。curl: (7) Failed to connect to localhost port 80: Connection refused
ポート 81 でコンテナーを実行しようとすると、すべて正常に動作します。
ポートは実際にはドッカーにバインドされています
22:47 $ sudo lsof -i -n -P | grep TCP
...
com.docke 14718 schovi 38u IPv4 0x6e9c93c51ec4b617 0t0 TCP *:80 (LISTEN)
...
osx のファイアウォールはオフになっており、他のセキュリティはありません。