最近、Docker とホストが同じネットワーク セグメント上で通信する問題を解決し、そのプロセス全体を記録するためにこの記事を書きました。 例えば ホストAとホストBはネットワークで接続されています。ホストAには複数のコンテナを作成してクラスターを形成していますが、ホストBを介してホストAのコンテナにアクセスしたいと考えています。もちろん、ポートマッピングは非常に便利とも言えるでしょう。さらにポートが必要な場合や、一時的にポートを追加する必要がある場合は、設定が面倒になることがあります。では、ホストAのコンテナのIPとホストのIPを同じネットワークに置けば、それらを直接相互接続することはできないのでしょうか? 1. Docker(Linuxサーバー)をインストールする Dockerをインストールする yumでdockerをインストール 2. パイプワークを使用してDockerコンテナに独立したIPを設定する パイプワーク ツールをインストールした後、1 つのコマンドを使用してコンテナーの IP アドレスを変更したり、より正確には、コンテナーの IP アドレスに新しいネットワーク カードを追加したりできます。 https://github.com/jpetazzo/pipework/archive/master.zip を取得します。 マスター.zip を解凍します。 cp パイプワークマスター/パイプワーク /usr/local/bin/ chmod +x /usr/local/bin/パイプワーク 3. IP設定ファイルeh0を編集する デフォルトの IP 構成ファイル、eth0 または ens33 を編集します (オペレーティング システムによって名前が異なります。たとえば、私が操作しているマシンの名前は ifcfg-ens33 です) iと入力して編集モードに入り、次の内容をファイルにコピーします。 タイプ=イーサネット PROXY_METHOD=なし BROWSER_ONLY=いいえ ブートプロトコル=dhcp DEFROUTE=はい IPV4_FAILURE_FATAL=いいえ IPV6INIT=はい IPV6_AUTOCONF=はい IPV6_DEFROUTE=はい IPV6_FAILURE_FATAL=いいえ IPV6_ADDR_GEN_MODE=安定したプライバシー 名前=ens33 36b40bc6-6775-4e02-8161-e245d0e3892f の翻訳です。 デバイス=ens33 #以下はブリッジ部分のONBOOT=yesの設定です ブリッジ=br0 ピアDNS=はい ピアルート=はい IPV6_PEERDNS=はい IPV6_PEERROUTES=はい 4. カスタムブリッジを作成する br0 vim の ifcfg-br0 設定内容を設定ファイルにコピーします デバイス=br0 BOOTPROTO=静的 NM_CINTROLLER=いいえ ONBOOT=はい TYPE=ブリッジ IPアドレス=192.168.186.128 ネットマスク=255.255.255.0 仮想マシンネットワークサービスを再起動します systemctl ネットワークを再起動 5. docker設定ファイルを修正し、ブリッジを指定する docker設定ファイル/etc/sysconfig/を変更する : : vim /etc/sysconfig/docker を実行する 変更点は以下のとおりです オプション = '--selinux-enabled --log-driver=journald --signature-verification=false' 変更後: オプション='--selinux-enabled -b=br0' 変更後: # /etc/sysconfig/docker # dockerデーモンの実行方法を変更したい場合は、これらのオプションを変更します #OPTIONS='--selinux-enabled --log-driver=journald --signature-verification=false' オプション='--selinux-enabled -b=br0' [ -z "${DOCKER_CERT_PATH}" ] の場合; DOCKER_CERT_PATH = /etc/docker フィ # このファイルにレジストリを追加しないでください。/etc/containers/registries.conf を使用してください。 # の代わりに使用してください。詳細については、registries.conf(5) のマニュアル ページを参照してください。 # 一時ファイル(作成されたファイルなど)の場所 # docker のロードおよびビルド操作。デフォルトは /var/lib/docker/tmp です # 次の環境変数を設定することで上書きできます。 # DOCKER_TMPDIR=/var/tmp # /etc/cron.daily/docker-logrotate cron ジョブのステータスを制御します。 # 無効にするには、以下の行のコメントを解除します。 #LOGROTATE=偽 # docker-latest デーモンは、docker-latest ユニットファイルを起動することで使用できます。 # docker-latestクライアントを使用するには、以下の行のコメントを解除します #DOCKERBINARY=/usr/bin/docker-latest #DOCKERDBINARY=/usr/bin/dockerd-latest #DOCKER_CONTAINERD_BINARY=/usr/bin/docker-containerd-latest #DOCKER_CONTAINERD_SHIM_BINARY=/usr/bin/docker-containerd-shim-latest その他の引数='-b br0' 5. Dockerサービスを再起動する systemctl dockerを再起動します 6. Dockerコンテナインスタンスを作成する docker run -itd --name test1 --net=none centos /bin/bash --net=none は、コンテナのネットワークカードがすべて空であり、パイプワークを通じてカスタマイズする必要があることを意味します。 7. ネットワークカードを指定する 配管 br0 テスト1 192.168.186.111/[email protected] 8. コンテナに入り、ホスト マシンと同じネットワーク セグメント内の IP アドレスに ping を実行して、正常に ping できるかどうかを確認します。 # コンテナに入る docker attach test1 # ホストにping 192.168.186.22 8.1 同じネットワークセグメント内のホストIPを変更する ホスト IP を変更し、ネットワーク セグメントをホスト A ブリッジ IP セグメントと一致させます。設定後、ホスト A と B は相互に ping を実行できるようになります。 # 同じネットワークセグメントのIPをpingする 192.168.186.33にpingする この時点で、Docker ネットワーク間の通信が完了します。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: js を使用して QR コードを生成するサンプル コード
>>: MySQL での coalesce() の使用に関するヒントのまとめ
1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...
今日は、MySQL データベースと SQL 標準 (および他のデータベース) の UPDATE ステ...
序文この記事では主に、MySQL のインデックスとビューの使用方法と違いを紹介し、参考と学習のために...
数日前、私のウェブサイトがいくつかの IP アドレスから大量の悪意のある標的型スキャンを受け、ブルー...
この効果と同様に、方法も非常に簡単です。ヘッダーに次のように記述します: <link rel=...
この記事では、MySQL 8.0.16 winx64のインストールと設定の具体的な方法を記載します。...
MIME タイプとは何ですか? 1. まず、ブラウザがコンテンツを処理する方法を理解する必要がありま...
<br />構造と階層により複雑さが軽減され、読みやすさが向上します。記事やサイトが整理...
最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...
//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...
基本的なネットワーク構成Docker はイメージに基づいて複数のコンテナを「開く」ことができ、各コン...
この記事は議論の出発点となることを目的としています。詳細なドキュメントと easycom の仕様につ...
1. 使用シナリオこのような要件があるため、システムが開発されました。ユーザーがデスクトップを離れ...
MySQL レプリケーション テーブルの詳細な説明テーブル構造、インデックス、デフォルト値などを含む...
ラジオボタンとチェックボックスラジオボタンとチェックボックスの効果を実現するための純粋な CSSラジ...