1. Dockerをインストールする
インストールが完了したことを示す「完了」メッセージが表示されます。 2. Dockerサービスを開始する サービスdocker開始 3. Dockerの起動を設定する chkconfig docker オン 4. 基本情報ビュー docker バージョン 5. アンインストールする場合、コマンドは次のようになります。 docker run を使用して Docker コンテナを作成する場合、--net オプションを使用してコンテナのネットワーク モードを指定できます。Docker には次の 4 つのネットワーク モードがあります。 --net=host を使用して指定されるホスト モード。 以下ではDockerの各ネットワークモードを紹介します。 1 ホストモード 形式: ご存知のとおり、Docker は、プロセスを分離するための PID 名前空間、ファイル システムを分離するためのマウント名前空間、ネットワークを分離するためのネットワーク名前空間など、Linux の名前空間テクノロジを使用してリソースを分離します。ネットワーク名前空間は、ネットワーク カード、ルーティング、Iptable ルールなど、他のネットワーク名前空間から分離された独立したネットワーク環境を提供します。 Docker コンテナには通常、独立したネットワーク名前空間が割り当てられます。ただし、コンテナの起動時にホスト モードを使用すると、コンテナは独立したネットワーク名前空間を取得せず、ホストとネットワーク名前空間を共有します。コンテナは独自のネットワーク カードを仮想化したり、独自の IP を構成したりはせず、ホストの IP とポートを使用します。 2 コンテナモード 形式: ホストモードを理解すれば、このモードも簡単に理解できます。このモードでは、新しく作成されたコンテナーがネットワーク名前空間をホストと共有するのではなく、既存のコンテナーと共有することを指定します。新しく作成されたコンテナは、独自のネットワーク カードを作成したり、独自の IP を構成したりするのではなく、指定されたコンテナと IP、ポート範囲などを共有します。同様に、ネットワークを除いて、ファイル システムやプロセス リストなど、2 つのコンテナーの他の側面は分離されたままです。 2 つのコンテナのプロセスは、lo ネットワーク カード デバイスを介して通信できます。 3 なしモード 形式: このモードは前の 2 つとは異なります。このモードでは、Docker コンテナには独自のネットワーク名前空間がありますが、Docker コンテナに対してネットワーク構成は実行されません。つまり、この Docker コンテナには、ネットワーク カード、IP、ルーティングなどの情報が含まれていません。 Docker コンテナのネットワーク カードを追加し、IP を構成する必要があります。 4 ブリッジモード ブリッジモードは、Docker のデフォルトのネットワーク設定です。このモードでは、ネットワーク名前空間を割り当て、コンテナごとに IP アドレスなどを設定し、ホスト上の Docker コンテナを仮想ブリッジに接続します。以下ではこのモードに焦点を当てます。 4.1 ブリッジモードトポロジ Docker サーバーを起動すると、ホスト上に docker0 という仮想ブリッジが作成され、このホスト上で起動された Docker コンテナはこの仮想ブリッジに接続されます。仮想ブリッジは物理スイッチと同様に動作し、ホスト上のすべてのコンテナーがスイッチを介してレイヤー 2 ネットワークに接続されます。次のステップはコンテナにIPを割り当てることです。DockerはRFC1918で定義されたプライベートIPセグメントからホストマシンとは異なるIPアドレスとサブネットを選択し、docker0に割り当てます。docker0に接続されたコンテナは、このサブネットから空いているIPを選択します。たとえば、Docker は通常、ネットワーク セグメント 172.17.0.0/16 を使用し、172.17.42.1/16 を docker0 ブリッジに割り当てます (docker0 は、ホスト上で ifconfig コマンドを使用して確認できます。これはブリッジの管理インターフェイスと見なすことができ、ホスト上の仮想ネットワーク カードとして使用されます)。単一マシン環境でのネットワーク トポロジは次のようになり、ホスト アドレスは 10.10.101.105/24 です。 Docker が上記のネットワーク構成を完了するプロセスは、おおよそ次のようになります。 1. ホスト上に仮想ネットワーク カード veth ペア デバイスのペアを作成します。 Veth デバイスは常にペアで表示されます。これらはデータ チャネルを形成します。データは 1 つのデバイスから入力され、別のデバイスから出力されます。したがって、2 つのネットワーク デバイスを接続するために、veth デバイスがよく使用されます。 2. Docker は、veth ペア デバイスの一方の端を新しく作成されたコンテナーに配置し、eth0 という名前を付けます。もう一方の端はホスト内に配置され、veth65f9 のような名前が付けられ、このネットワーク デバイスは docker0 ブリッジに追加され、brctl show コマンドで表示できます。 3. docker0 サブネットからコンテナに IP を割り当て、docker0 IP アドレスをコンテナのデフォルト ゲートウェイとして設定します。 4.2 ブリッジモードでのコンテナ間の通信 ブリッジ モードでは、同じブリッジに接続されたコンテナーは相互に通信できます (セキュリティ上の理由から、DOCKER_OPTS 変数で --icc=false を設定することで、それらの間の通信を禁止することもできます。これにより、--link のみが 2 つのコンテナーの通信を有効にできます)。 このルールは、docker0 ネットワーク カードから送信されていない、送信元アドレスが 172.17.0.0/16 のパケット (つまり、Docker コンテナーから生成されたパケット) の送信元アドレスを、ホスト ネットワーク カードのアドレスに変換します。分かりにくいかも知れませんので、例を挙げて説明しましょう。ホストに eth0 という名前のネットワーク カードがあり、IP アドレスが 10.10.101.105/24、ゲートウェイが 10.10.101.254 であるとします。 IP 172.17.0.1/16 のホスト上のコンテナから Baidu (180.76.3.151) に ping を実行します。 IP パケットはまずコンテナからデフォルト ゲートウェイ docker0 に送信されます。パケットが docker0 に到達した後、ホストにも到達します。次に、ホストのルーティング テーブルが照会され、パケットはホストの eth0 からホストのゲートウェイ 10.10.105.254/24 に送信される必要があることがわかります。その後、パケットは eth0 に転送され、eth0 から送信されます (ホストの ip_forward 転送がオンになっている必要があります)。このとき、上記の Iptable ルールが有効になり、パケットに対して SNAT 変換が実行され、送信元アドレスが eth0 のアドレスに変更されます。このように、外部から見ると、このパケットは 10.10.101.105 から送信されており、Docker コンテナは外部からは見えません。 次に、Iptable ルールの変更を確認し、追加のルールを見つけます。 このルールは、ホスト eth0 が受信した宛先ポート 80 の TCP トラフィックに対して DNAT 変換を実行し、トラフィックを上記で作成した Docker コンテナである 172.17.0.5:80 に送信します。したがって、外部からコンテナ内のサービスにアクセスするには、10.10.101.105:80 にアクセスするだけで済みます。 ユーザー定義モード ユーザーは、Docker ネットワーク ドライバーまたはその他のネットワーク ドライバーを通じてネットワークをカスタマイズできます。複数のコンテナを同じネットワークに接続できます。カスタム ネットワークに接続すると、コンテナは互いの IP アドレスとホスト名を介して相互に通信できるようになります。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: MySQL シーケンス AUTO_INCREMENT の詳細な説明とサンプルコード
>>: js シンプルで粗雑なパブリッシュとサブスクライブのサンプルコード
SQL クエリ ステートメントの実行順序は次のとおりです。 (7)選択 (8) DISTINCT &...
目次序文Zookeeper サービスのオープンを検出情報を入手する接続テスト接続先修理計画参照する序...
垂直方向では、セルの配置を上、中央、下に設定できます。基本的な構文<TD VLIGN=&quo...
AWS - Amazon のクラウド コンピューティング サービス プラットフォーム以前、AWS の...
1. 背景私たちは時々社内研修を行っており、実験環境をよく利用しています。最初はdockerコンテナ...
ネイティブ JS で実装したリアルタイム クロック エフェクトを共有します。エフェクトは以下のとおり...
1. Yumのインストール yum でサブバージョンをインストール 2. 構成1. 倉庫を作る/ho...
テーブル:reward(報酬テーブル)があるとします。テーブル構造は次のようになります。 テーブルt...
Git は vscode に統合されており、git コマンドをいくつか記述しなくても、クリックするだ...
この記事の例では、コンピュータカメラを呼び出して写真機能を実現するためのvueの具体的なコードを参考...
目次1. エラーメッセージ2. エラーの原因3. 解決策1. エラーメッセージ1. インストール後、...
私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...
VMwareでcentos8サービスをインストールしてコピーすると、次の問題が発生します。 コピー前...
目次序文仮想リストとは何ですか?デモ効果準備スクリーンの高さとボックスの高さ最適化要約する序文人気の...
その機能はグローバル スタイルを設定することです。その後の相対パスはこれに基づきます: <im...