ぷっぽプログラミング備忘録

linux, javascript, php, C#, そのうちScalaとかアプリ開発とかやってみたいです。

VPS上でdockerを起動して外部からアクセスする

VPSなどを利用していて、VPS上にdockerをインストールし、コンテナ立ち上げて、外部から接続するケース。

最低限やればいいことを以下に列挙します。

 

・docker-compose.ymlで、portsでしっかりと外部側のポートを指定。

 

ports:

    "8080:80"

 

みたいな感じで。

↑の例だと、外部から8080ポートでアクセスがきたら、コンテナの80ポートにポートフォワードする、という意味ですね。

 

ここで注意することは、

ports:

   "80:80"

としてしまうと、既にapacheなどがホスト(例えばVPSの仮想PC)で起動されてると、当然怒られちゃうということです。

 

最後に重要なことです。

・外部から接続するポートを開放する(当然ですね)

ufwなどを利用していた場合は、設定後、dockerコンテナなどをいったん破棄して、再度、dockerを立ち上げないと接続できないこともあります。

 

この点を気をつけるだけで、あとは、

docker-compose up -d

VPS上で行えば、ポートフォワードなどの設定もいい感じにしてくれるようです。

他、特に何もしなくてもコンテナに外部から接続できました。感動。