次のようなコンテナの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