web-dev-qa-db-ja.com

Dockerホストからコンテナ化されたサービスのWebインターフェイスにアクセスする方法は?

私のホームサーバーはUbuntuを実行しています(デスクトップ環境がインストールされています)。これは、Webインターフェイス(Transmission、Sickrage、Openhab、Unifiコントローラーなど)によって管理されるいくつかのサービス用のいくつかのDockerコンテナーをホストします。

好みに応じて、コンテナのネットワーク化に以下を使用しました。

--net=macvlan
--ip=192.168.0.211 

このように、私はポートの問題を抱えていません(最初のものをポート8080にインストールし、次のものはデフォルトで8080も使用しますが、8081に置く必要がありますが、デフォルトで8081を持つ新しいサービスをインストールしたいしかし、それでも、別のものに変更する必要があります...)、ここでは、次のサービスと出来上がりのために次に利用可能なIPアドレスを取得します。

外部アクセスに関しては、セキュリティ上の理由から、外部からホームサーバーへのSSHアクセス用に1つのポートのみを開き、トンネリングを介してVNCアクセスも利用できます。

私の問題:ホームサーバー自体を除いて、ローカルネットワーク内の任意のコンピューターからコンテナーのWebインターフェイスにアクセスできます。コンテナは相互にアクセスすることもできます。自宅ではそれは大きな問題ではありませんが、外部からアクセスする場合は大きな問題です。

その結果、VNCアクセスを使用してこれらのサービスを管理することができません。

この問題を解決するにはどうすればよいですか?

1
Memes

答えはここにあります: https://docs.docker.com/v17.09/engine/userguide/networking/get-started-macvlan/#macvlan-bridge-mode-example-usage

実際にmacvlanとブリッジしている新しいネットワークインターフェイスを作成する必要がありました。

ip link add mac0 link enp3s0 type macvlan mode bridge
ip addr add 192.168.0.199/24 dev mac0
ifconfig mac0 up

コマンドには昇格された特権が必要です。

すべてすぐにOKになりました。

0
Memes