docker 端口映射 有点蒙圈 谁给解释一下
ringa_lee
ringa_lee 2017-04-25 09:01:39
0
3
2969

docker 端口映射 有点蒙圈 谁给解释一下

ringa_lee
ringa_lee

ringa_lee

全員に返信(3)
淡淡烟草味

コンテナ間で相互にアクセスするには、コンテナの作成時に --link パラメータを使用する必要があります。接続されたコンテナには名前を付けることが最善です。

docker run --name mysql ......docker run --name mysql .......
docker run --name php --link mysql .......
docker run --name nginx --link php .......

以这种方式启动时,只需要在程序内使用对应的容器名即可访问相应的服务。
例如 fastcgi_pass php:9000;

如果是对外暴露端口,需要通过-p或者-P参数,最好使用-p。
docker run --name nginx -p 80:80 -p 443:443 .......docker run --name php --link mysql ....
docker run --name nginx --link php ......

🎜この方法で開始すると、プログラム内で対応するコンテナ名を使用するだけで、対応するサービスにアクセスできます。 🎜例: fastcgi_pass php:9000;🎜 🎜 ポートが外部に公開されている場合は、-p または -P パラメーターを渡す必要があります。-p を使用するのが最善です。 🎜docker run --name nginx -p 80:80 -p 443:443 .....🎜このようにして、ブラウザはこのサーバーが提供する Web サービスにアクセスできます。 🎜
いいねを押す +0
大家讲道理

ポート マッピング:
ローカル マシンのポートを選択し、それをコンテナのポートにマッピングします。これにより、リクエストが到着してローカル マシンのマッピングされたポートにアクセスすると、そのリクエストはコンテナに転送されます。そのポートはコンテナ内のサービスに依存してリクエストを処理します。

なぜポートマッピングがあるのですか?
ローカル IP は 1.2.3.4 などのパブリック IP ですが、ローカル コンテナ IP は 172.17.0.2 などの仮想 IP です。現時点では、外部からコンテナのサービスに直接アクセスすることはできません。ローカル マシンのポートにアクセスすることで、コンテナ内のサービスを使用できます。

いいねを押す +0
我想大声告诉你

いわゆる「混乱」が具体的に何を指すのかわかりません。
簡単に言うと、これは NAT の原理に似ています。ホスト ネットワークがコンテナによって提供されるサービスにアクセスできるようにする必要がある場合、コンテナのポートをホスト ネットワークに公開する必要があります。
一般的な構文は、「docker run」を実行するときにパラメーター「-p host_port:container_port」を指定することです。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート