第29回 Docker Networkingの基礎知識 標準的なネットワークを理解する:古賀政純の「攻めのITのためのDocker塾」(3/5 ページ)
引き続きDocker環境におけるネットワーキングの基礎を解説します。今回は、Dockerでの標準的なネットワークを例に、手順を交えながらその構成がどうなっているのかを理解していきましょう。
Dockerのネットワーク構成を確認してみよう
では、実際にDockerホスト上のネットワークインタフェースを確認してみましょう。IPアドレスの確認に、ipコマンドを使用します。Dockerエンジンが稼働しているホストOS上で以下のように入力します。
# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo ... 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:7c:f1:83 brd ff:ff:ff:ff:ff:ff inet 172.16.1.123/16 brd 172.16.255.255 scope global eth0 ... 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN link/ether 02:42:6c:93:1c:59 brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 scope global docker0 ...
物理サーバに搭載されている物理NICのインタフェースeth0に割り当てられているIPアドレスは、172.16.1.123/16であると確認できます。ホストOSは172.16.0.0/16のネットワークに所属し、eth0で外部と通信ができる状態です。一方、docker0ブリッジのIPアドレスとして172.17.0.1/16が割り当てられています。docker0とeth0は異なるネットワークセグメントですが、docker0が提供するブリッジネットワークに所属するコンテナは、ホストOSが提供するiptablesのNAT機能を使って、ホストOSの物理NICのeth0を経由して外部にアクセスできます。NATは、Dockerエンジンによって自動的に設定されています。
ホストOS上でIPアドレスの変換を行うNATの現在の設定を確認してみましょう。NATの設定状況をホストOSで確認するには、以下のようにiptablesコマンドに「-L -t nat」オプションを付与して実行します。
# iptables -L -t nat ... Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 172.17.0.0/16 anywhere ...
上記のように、伝送されるパケットの送信元(source)アドレスが172.17.0.0/16であるもの、すなわち、docker0ブリッジに所属するコンテナから送信されるパケットは、NATによってIPアドレスが変換され、外部と通信できることが分かります。パケットのあて先(destination)は、「anywhere」となっていますが、適切なネットワークインタフェースとデフォルトゲートウェイにより、外部に通信できます。
関連記事
- 第28回 Docker Networkingの基礎知識 ソフトウェア定義型時代の到来
今回からDocker環境のネットワーキングに迫ります。ネットワーキングと聞くと、とても難解なイメージがあるかもしれませんが要素技術は非常に重要です。従来の物理システムと異なる点もあるDockerのネットワーキングについて、まずは基本を解説します。 - 第20回 Dockerで3Dゲームを動かす――準備編
非常に深い関係にあるゲームとコンピュータ。今回からDockerの環境で3Dゲームを稼働させる方法についてご紹介していきます。まずはその目的や方法、必要な環境などについてみていきましょう。 - 第25回 32ビット環境に迫る「2038年問題」 時計がおかしくなると……
いまだ数多くのシステムで32ビットのOSやアプリケーションが使われていますが、実は深刻な影響が懸念される「2038年問題」を抱えています。将来どのような影響が出るのかについて、今回から「Docker」による検証を先取りしていきます。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.