Windowsローカルブラウザから直接リモートLinuxサーバー上のDocker Webアプリケーションにアクセスする方法は?

Windowsローカルブラウザから直接リモートLinuxサーバー上のDocker Webアプリケーションにアクセスする方法は?

次のようなミラーチュートリアルdockerhubでは、リモートLinuxサービスでdocker Webアプリケーションを実行できました。ここでホストは、ブラウザのアドレス「http://localhost:8888/index.html」からアクセスできるリモート Ubuntu サーバーです。同様に、次のコマンドを使用してコンテナを構築しました。

docker run -it --rm -p 8888:8888 --shm-size=512M mathworks/matlab:r2022b -browser

ただし、問題は、アプリケーションがホストコンピュータのブラウザからのみアクセスでき、自分のローカルコンピュータまたは同じLAN上の他のコンピュータからアクセスできないことです。 Webで検索して解決策を見つけるのに苦労しています。

"http://localhost:8888/index.html"
"http://<linux_ip_id>:8888/index.html"
"http://<windows_ip_id>:8888/index.html"
"http://<container_ip_id>:8888/index.html"

また、私その他のソースホストとローカルコンピュータを接続するためのネットワーク方法を設定する必要があり、その解決策はVM VirtualBox Managerの設定でした。しかし、私の状況は異なります。ホストはリモート独立Ubuntuサーバーです。 Dockerコンテナはデフォルトでブリッジでホストと通信していますが、指定されたネットワーク接続でDockerコンテナを構築してDockerコンテナを実行してみましたが、--network=host上記のアクセスアドレスはまだ機能していません!

注:私のローカルコンピュータはWindows 10システムで、リモートLinuxシステムと同じLANにあります。通常、サーバーのIPアドレスをpingするか、SSH経由で接続できます。

ベストアンサー1

私は同様の状況にあった。 DockerはLinuxサーバー仮想マシンで実行されます。別のネットワーク上の他のコンピュータからリモートでDockerコンテナにアクセスしてみてください。解決策は、Linuxサーバーでiptablesを変更することです。

iptables -I DOCKER-USER -i ensXX -s 0.0.0.0/0 -j ACCEPT

このコマンドは、すべてのネットワークでの接続を許可します。 ensXX - 私のLinuxサーバーネットワークインターフェースです(ifconfigを参照)。

このコマンドを実行すると、リモートでDockerコンテナに接続できます。

dockerとiptablesに関する追加情報:https://docs.docker.com/network/iptables/

おすすめ記事