Docker Networkingの概要:ワークフロー、ネットワーキングの基本、ネットワーキングコマンド

公開: 2020-04-30

目次

序章

仮想化のこの時代では、ネットワーク管理者は、ルーター、LAN / WANコンポーネント、スイッチなどの従来のネットワークコンポーネントだけに取り組むことはなくなりました。 仮想化プラットフォーム上のネットワークコンポーネントで作業する必要があります。 IT業界全体が、強力なネットワーキングスキルが不可欠なコンテナ化の概念に関心を持っています。

Dockerは最も使用されているコンテナー化ソフトウェアの1つであるため、コンテナーを構成するにはDockerネットワークスキルが重要です。 現在、 12,000を超える企業がアプリケーションの出荷にDockerコンテナを使用しています これらの企業には、JPモルガンチェース、ThoughtWorks、Neudesicが含まれます。

この記事では、 Dockerネットワーキング基本であるDockerの概要について学習します。

まず、Dockerの基本を理解しましょう。

Dockerとは何ですか?

Dockerは、コンテナー化の概念を導入したソフトウェアパッケージングプラットフォームです。 コンテナ化は、ソフトウェアアプリケーションに、ライブラリ、モジュール、OSなどの必要なすべての依存関係をパックするプロセスです。 これにより、ソフトウェアはどのような環境でも簡単に実行できます。

これらのソフトウェアパッケージはDockerコンテナと呼ばれます。 これらのコンテナーは、特定の環境にアプリケーションをデプロイするために使用されます。 Ubuntuコンテナ、CentOSコンテナ、Tomcat-Ubuntu、CakePHPコンテナのいずれでもかまいません。

たとえば、Tomcatサーバーがインストールされている環境で実行するためにJavaアプリケーションが作成されたとします。 開発後、アプリケーションはテストのために送信されます。 テスターは、アプリケーションを実行するためにTomcatサーバーを再度セットアップする必要があります。 次に、本番環境に送信されます。本番環境では、同じ環境をセットアップする必要があります。

ただし、環境がすでに含まれているDockerコンテナーは、最初から始めるという問題を解決します。 したがって、開発者、テスター、およびプロダクションユニットのメンバーは、Tomcatサーバーを何度もセットアップしなくてもアプリケーションを実行できます。

読む: Dockerプロジェクトのアイデアとトピック

Dockerワークフロー

アプリケーションまたはプロジェクトコードは、 Dockerファイルに記述されています このファイルには、アプリケーションの要件と依存関係が含まれています。 このファイルは、後でファイル内のコードを実行するために使用されるDockerイメージを生成します。

イメージには、アプリケーションの実行に必要なコード、環境変数、構成ファイル、ランタイム、およびライブラリが含まれています。 次に、イメージはDockerHubにアップロードされます。DockerHubはDockerイメージで構成されるGITリポジトリです。 これらのリポジトリから、独自のDockerイメージをフェッチしてアップロードできます。

品質保証チームまたは会社の生産チームのメンバーは、コンテナを開発するために画像を取得します。 これらのコンテナはすべて互いに分離されている可能性があるため、 Dockerネットワークはそれらが相互に作用するための一連のルールです。

Dockerの基本を理解したところで、 Dockerネットワークについて詳しく見ていきましょう

また読む:インドのDocker給与

Docker Networking B asics

Dockerが最初にインストールされると、3つの異なるDockerネットワークが構成されます–なし、ホスト、ブリッジ。 noneとhostはDockerスタックの重要なコンポーネントであり、削除することはできません。 docker0ネットワークと呼ばれるブリッジネットワークを構成できます。

Dockerは、多くのネットワークの作成に使用できます。 コンテナを複数のネットワークに追加できます。 複数のネットワークに接続されているコンテナは、これらのネットワークのコンテナに接続できます。

Dockerで使用される主なネットワークドライバーは次のとおりです。

これは、Dockerによってホスト上に作成されたプライベートデフォルトネットワークです。 IPサブネットとゲートウェイは、このネットワークによって自動的に作成されます。 このネットワークに属するコンテナは、同じサブネットの一部です。 したがって、このネットワークのコンテナはIPアドレスを介して通信します。

ブリッジネットワークドライバーは、アプリケーションがスタンドアロンコンテナーで実行される場合に非常に役立ちます。 Dockerインストールは、デフォルトでdocker0を表します。 コンソールで次のコマンドを入力すると、Dockerはブリッジネットワークを記述するJSONオブジェクトを返します。

Dockerネットワークはブリッジを検査します

亭主

ホストドライバーは、スタンドアロンコンテナーに使用されます。 コンテナーにホストネットワークモードが使用されている場合、Dockerホストとネットワークスタック間の分離は削除されます。 コンテナは割り当てられたIPアドレスを取得しません。

たとえば、ポート80にバインドするコンテナが実行され、ホストネットワークが使用されます。 この場合、コンテナのアプリケーションは、ホストのIPアドレスのポート80で使用できます。 このネットワークモードは、コンテナが多数のポートを処理する場合に役立ちます。

さらに、ホストドライバーを使用すると、同じ単一のホストで複数のWebコンテナーを実行できます。

なし

このタイプのネットワークでは、コンテナは外部ネットワークにアクセスできず、他のコンテナまたはネットワークに接続されていません。 特定のコンテナでネットワークスタックを無効にする場合は、Noneを使用します。

ループバックインターフェイスしかないのはどれもありません。つまり、外部ネットワークインターフェイスはありません。

かぶせる

これは、スウォームクラスター内のすべてのノードにまたがる内部プライベートネットワークを作成するために使用されます。 Dockerスウォームネットワークは、Dockerアプリケーションを実行している仮想マシンまたは物理マシンのグループです。 このネットワークドライバーは、スタンドアロンコンテナーとスウォームサービス間の通信を可能にするためDockerネットワークで重要です。

さまざまなDockerデーモン上のスタンドアロンコンテナーもこのドライバーと対話できます。 したがって、コンテナに対してOSレベルのルーティングを実行する必要はありません。

Macvlan

このネットワークでは、MACアドレスをコンテナに割り当てることができます。 これにより、物理デバイスとして表示されます。 このアドレスを使用して、Dockerデーモンはトラフィックを特定のルーターにルーティングします。 Dockerデーモンは、ホストOS上で実行され、ホストOSと対話してさまざまなアクティビティを実行するサーバーです。 Macvlanネットワークは、コンテナ間の通信を簡素化します。

Macvlanは、物理ネットワークに接続することが期待されるレガシーアプリケーションを処理する場合に適したオプションです。 Macvlanネットワークを確立する場合、ブリッジモードまたは802.1qトランクブリッジモードの2つのモードにすることができます。

ネットワークプラグイン

Dockerでサードパーティのネットワークプラグインを使用できます。 これらのプラグインはDockerHubで入手でき、サードパーティベンダーから入手できます。

Dockerネットワークコマンド

最も一般的なDockerネットワークコマンドは次のとおりです。

Dockerネットワークを一覧表示する

このコードは、ホスト上のすべてのDockerネットワークを一覧表示します–

Dockerネットワークls

Dockerネットワークの作成

次のコマンドは、コンテナを起動する前にネットワークを作成するのに役立ちます。

docker network create –-ドライバードライバー名

ここで、 drivernameはネットワークドライバーに付けられた名前であり、 ネットワークコマンドの一覧表示

このコマンドは、使用可能なネットワークコマンドを一覧表示するために使用されます。

Dockerネットワークヘルプ

ネットワークの削除

rmコマンドは、ネットワークの削除に使用できます。

docker network rm mynetwork

Dockerネットワークに接続する

Dockerネットワークを作成すると、デフォルトでブリッジネットワークに接続されます。 コンテナを実行するときに、次のコマンドを使用して別のネットワークに接続できます。

docker container run -it –net = mynetwork nginx

コンテナ港の取得

portコマンドを使用して、コンテナのポートを取得できます。

docker port cotainer_name / id

結論

Dockerは、最近のソフトウェア開発の重要な側面です。 ますます多くの企業がコンテナ化に向かっているので、ネットワークはコンテナを分離するために重要です。 これにより、安全に連携するWebアプリケーションの開発が可能になります。 これらのネットワークは、コンテナ間の通信を改善するのに役立ちます。

Dockerは、多くの企業がデプロイメント時間を改善し、それに関連するコストを削減するのに役立ちました。 したがって、初心者の場合、この記事はDockerネットワーキングの基本に頭を悩ませるのに役立ちます

フルスタック開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のPGディプロマをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクトと課題、IIITを提供します。 -B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との雇用支援。

未来のキャリアに備える

業界で信頼されている学習-業界で認められた認定。
今すぐ申し込む