以下の説明において、3台のマシンが登場します
マシン名 | 説明 |
---|---|
ホスト | vps上にあるlinuxマシン。Dockerがインストールされている。グローバルip割り当て済み。以下のコマンドはこのホスト上で実行された。nginxも動いている |
Dockerのコンテナ | ホストにインストールされているDockerで作成された仮想マシン。nodejsが動いている |
ホスト外 | ホストとは別のマシン。目の前にあるwindowsマシン。ここからホストにsshで接続している |
[user@localhost web-server-docker]$ cat Dockerfile FROM centos:6.7 ~webサーバーを立てる~ EXPOSE 80 [user@localhost web-server-docker]$ sudo docker run -d -p 2525:80 web-server
この状態ですと、ホスト側からは curl localhost:2525 でdockerの中のwebサーバーにアクセス出来ますし、ホスト外からも[グローバルip]:2525 でアクセスする事が出来ます。
そこで質問なのですが、ホスト外から[グローバルip]:2525で直接繋がらず、ホストのnginx経由でしか繋がらないようにするにはどうしたらよいうのでしょうか。
nginxの設定はlocalhost:2525にポート転送すればいいので問題ないのですが、Dockerのコマンド・Dockerfileにどう書けば
・ホストからはlocalhost:2525で繋がる
・ホスト外からは[グローバルip]:2525で繋がらない
という状態にする事が出来るのでしょうか。
また、このような使い方はDockerの標準な使い方からは逸脱しているのでしょうか。
「いやいや、工夫すれば出来るけどDockerはそういう目的で使うもんじゃない」というのであればご指摘頂けたらと思います。
今回の質問内容の環境ですとDockerを使う意味が薄いかなと自分でも思っているのですが、勉強のためDockerを使ってみたい。出来ればnodejsのサービスはそのまま別のvpsに引っ越す事が出来るように環境をdockerで隔離しておきたい。という理由がありDockerに挑戦してみた次第です。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。