VPSなどを利用していて、VPS上にdockerをインストールし、コンテナ立ち上げて、外部から接続するケース。
最低限やればいいことを以下に列挙します。
・docker-compose.ymlで、portsでしっかりと外部側のポートを指定。
"8080:80"
みたいな感じで。
↑の例だと、外部から8080ポートでアクセスがきたら、コンテナの80ポートにポートフォワードする、という意味ですね。
ここで注意することは、
"80:80"
としてしまうと、既にapacheなどがホスト(例えばVPSの仮想PC)で起動されてると、当然怒られちゃうということです。
最後に重要なことです。
・外部から接続するポートを開放する(当然ですね)
ufwなどを利用していた場合は、設定後、dockerコンテナなどをいったん破棄して、再度、dockerを立ち上げないと接続できないこともあります。
この点を気をつけるだけで、あとは、
docker-compose up -d
をVPS上で行えば、ポートフォワードなどの設定もいい感じにしてくれるようです。
他、特に何もしなくてもコンテナに外部から接続できました。感動。