問題タブ [macvlan]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
docker - macvlan ネットワーク経由でホストから docker コンテナにアクセスできない
私の Linux ネットワークでは、専用の macvlan ネットワークを介して、実行中のホストから Docker コンテナーに到達できません。この macvlan ネットワークへの他のすべての接続は問題ありません。
したがって、基本的なセットアップは次のとおりです。
- ホスト DOCKER1 が CONTAINER1 にアクセスできない
- ホスト DOCKER2 が CONTAINER2 に到達できない
- ホスト DOCKER1 は DOCKER2 にアクセスできます
- ホスト DOCKER1 は CONTAINER2 にアクセスできます
- ホスト DOCKER2 は DOCKER1 にアクセスできます
- ホスト DOCKER2 は CONTAINER1 にアクセスできます
- すべてのコンテナが互いに到達可能
- 物理ネットワーク内の他のすべてのデバイスは、すべてのデバイスに到達できます。
- すべてがゲートウェイ/インターネットに到達できます
ホストを macvlan ネットワーク経由で独自のコンテナーに到達させるにはどうすればよいですか?
このネットワークを介してやり取りするには特定のアプリケーションが必要なので、使用しdocker exec
ても問題は解決しません;)。
docker - Docker macvlan: hostB から hostA のコンテナにアクセスする
https://docs.docker.com/network/network-tutorial-macvlan/#prerequisites
「my-macvlan-net という名前の macvlan ネットワークを作成します。サブネット、ゲートウェイ、および親の値を、環境で意味のある値に変更します。」
ネットワークに関しては初心者です。私のenvで意味のある値が何を意味するのかわかりません
これは、ホスト ネットワーク インターフェイスに表示されるものです。ip addr
自分の環境でどの値が意味があるかを知るにはどうすればよいですか?
IP ルート
IP ルート
docker - macvlan を使用した Docker コンテナーは、他のホストから ping できません
同じホストから macvlan インターフェイスに ping できないことはわかっていますが、コンテナーの macvlan インターフェイスに別のサブネット上のホストから ping を実行することはできません (ルーター経由で接続されていても)。
ホスト IP: 10.8.2.132/22
Macvlan コンテナー IP: 10.8.2.250/22
その他のホスト IP: 10.4.16.141/22
ip route get 10.8.2.250 は、既知のルートがあることを示しています。
これをデバッグするにはどうすればよいですか?
docker macvlan ネットワークは次のように作成されました。
コンテナーを実行するときに、具体的に「--ip=10.8.2.250」を追加します
docker - DockerコンテナのJetBrains/Teamtools「アドレス0.0.0.0とポート443でリッスンできませんでした」
問題
私は、JetBrains Hub、Youtrack、Upsource、および Teamcity を Docker コンテナにセットアップし、HTTPS 用に 443 および 443 にリダイレクトされたデフォルト ポート 80 で独自の IP (macvlan) で使用できるようにそれぞれを構成しようとしています (したがって、ポート番号はブラウザには表示されません)。
ただし、それを行うと、次のようになります。
アドレス 0.0.0.0 およびポート 443 でリッスンできませんでした
teamtools をデフォルトのポート 8080 および 8443 のままにしておくか、2000 を超えるポートを与えることも同様に機能するようです。
確認しましfuser 443/tcp
たnetstat -tulpn
が、ポート 80 または 443 で何も実行されていません。(コンテナー内のパッケージをインストールする必要がありました)
リスニング アドレスを NIC の IP または 172.0.0.1 に設定しようとしましたが、これも拒否されました。
質問:
- ポート 80 と 443 を設定できないのはなぜですか?
- 2000 以上のポートで機能するのはなぜですか?
- リバース プロキシなしでこれを機能させるにはどうすればよいですか? (リバースプロキシには他にもたくさんの問題があり、このセットアップで回避しようとしています)
設定
docker-compose.yml