Webインターフェイスにアクセスするためのポートマッピング

Webインターフェイスにアクセスするためのポートマッピング

Linuxを実行しているベアボーンサー​​バーがありますが、グラフィカルインターフェースはインストールされていません。これはコマンドラインでのみ機能し、私たちはそれを変更したくありません。

このサーバーのIPアドレスは192.168.1.6

この機械で私達は実行しますルーストアバウト複数のコンテナを使用してください。コンテナの1つは、ポート経由でアクセスできるWebアプリケーションです80

ベアボーンLinuxを使用すると、curl localhostWebページの生データがあります。同じLAN上のすべてのコンピュータのネットワークアプリケーションを見たいです。たとえば、マイコンピュータで192.168.1.7ブラウザに192.168.1.6Webアプリケーションを入力して表示したいとします。

まずこれは可能ですか?それでは、案内を少ししていただけますか?

答え1

これを行うにはいくつかの方法があり、最も簡単な方法はDockerに組み込まれているネットワーキングを使用することです。

$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
6ef2c6836690        bridge              bridge              local
db24b1e2be58        host                host                local
edf606d533a5        none                null                local

デフォルトでは、コンテナはbridgeNETにない限りネットワークに移動しますdocker run...

$ docker run -P -d -p 12345:80 nginxdemos/hello

これにより、LAN上のすべてのホストはIP +ポートを使用してDockerホストにアクセスできます。

$ curl -I http://192.168.56.101:12345/
HTTP/1.1 200 OK
Server: nginx/1.13.8
Date: Fri, 27 Jul 2018 08:26:02 GMT
Content-Type: text/html
Connection: keep-alive
Expires: Fri, 27 Jul 2018 08:26:01 GMT
Cache-Control: no-cache

ファイアウォール

Dockerホストのファイアウォールが原因で、トラフィックがDockerコンテナに入るのを妨げる可能性があることに注意してください。場合によっては、Dockerホストの外側のホストがこのポートにアクセスできるように、ホワイトリストにDockerホストのポート(上記の例では12345)を追加する必要があります。

引用する

関連情報