次のようなコンテナの3000ポートをホストの3000ポートにマッピングする設定でdocker-compose run
コマンドを使ってコンテナを起動しました。
しかしlocalhost:3000
にアクセスしましたが、コンテナの3000ポートのページが表示されない問題で少しハマりました。
yml|docker-compose.yml
version: '2'
services:
develop:
build: .
tty: true
privileged: true
ports:
- "3000:3000"
解決方法は docker-compose run --service-ports
と--service-ports
オプションをつけることです。
docker-compose run
は基本的に単発のコマンドを実行するためのコマンドであり、docker-compose up
で起動されたコンテナとのポートマッピングの競合を防ぐために、このような仕様になっているみたいです。
参考
https://github.com/docker/compose/issues/1259#issuecomment-90878095