次のようなミラーチュートリアル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/
答え2
ssh
幸い、命令を使用して問題を解決することができました。ローカルWindowsシステムで使用される参照コマンドはssh
次のとおりです。
ssh -L 8888:<remote_linux_ip>:8888 <my_name>@<remote_linux_ip>