VMからDockerコンテナに接続できない

古いコミュニティに保存されていた情報が失われたことによる別の問題: Network setup? Cannot reach docker container from VM. - QNAP NAS Community Forum

私はいくつかのDockerコンテナを通常のNATブリッジの背後にセットアップしています。これは意図的で、コンテナをネットワーク上に出したくありません。そうするとVLANが必要になり、QNAPの仮想スイッチの仕組みでは、インターフェースにVLANを追加するとVLAN1へのアクセスも失われてしまうため、簡単ではありません。これらのコンテナには、LANからアクセスを許可された任意のコンピュータからポート番号を指定して問題なくアクセスできます。しかし、今はVirtualization StationのVMからもDockerコンテナにアクセスする必要があります。そのスレッドで議論されていた内容と同じように、VMからDockerコンテナにはアクセスできません。QNAPのWebインターフェースや、NAS上でホストされているSMBや他のサービスには問題なくアクセスできます。しかし、NAS上でホストされているDockerコンテナにはアクセスできません。これに対する解決策はありますか?

おそらくルーティングの問題です。Virtualization StationのVMでは、通信に使用したいNICを選択します。その後、VM内でLAN上のアドレスなどを設定できます。

まず、VMのルーティングテーブルを確認してください。例えばWindowsでは、コマンドプロンプトからroute printを実行します。Linuxではコマンドが異なる場合があります。コンテナのサブネットがどのようにルーティングされているかを確認する必要があります。その後、必要に応じて手動でルートを追加できます。

お使いのシステム環境およびネットワーク構成をさらに分析するため、以下の情報をご提供いただけますでしょうか。

  1. 仮想スイッチ設定のスクリーンショット

  2. Docker(Container Station)で稼働している内容の詳細

  3. 仮想マシンのOSバージョン

これらの情報は問題の特定に役立ちます。ご協力いただきありがとうございます。

ルーティングのことを思いつかなかったのが不思議ですが、それが原因でした :slight_smile:。記憶を呼び起こしてくれてありがとう。Linux VMは標準のインフラVLANを使っていて、当然メインルーターと通信しています。172.29.20.0/24はアクセスしようとしていた特定のdockerネットワークです。「ip route add 172.29.20.0/24 via 192.168.x.x dev ens2」(192.168.x.xはQNAPのIP、ens2はLinux VMのイーサネットポート名)を実行することで、コンテナのIPでコンテナに正常に到達できることをテストできました。その後、Network Manager経由で永続ルートを追加しました。

改めてありがとう :slight_smile: