第29回 Docker Networkingの基礎知識 標準的なネットワークを理解する古賀政純の「攻めのITのためのDocker塾」(5/5 ページ)

» 2016年09月21日 08時00分 公開
前のページへ 1|2|3|4|5       

ホストOSのブリッジの状態を見てみよう

 vethの接続状況を見るには、docker0のブリッジの状況を見ると分かります。ブリッジに接続されている仮想インタフェースを確認するには、ホストOS上でbrctlコマンドを入力します。このコマンドは、Dockerとは無関係に、ホストOS上に設定されているブリッジインタフェースの状態確認や設定を行えます。


# brctl show docker0
bridge name     bridge id               STP enabled     interfaces
docker0         8000.02426c931c59       no              vethc06ae92

 上記の例では、docker0ブリッジに仮想インタフェースの「vethc06ae92」が接続されていることがわかります。これにより、このdocker0と接続されているveth、さらにvethと直結のDockerコンテナ内のeth0が接続されることで、Dockerコンテナが外部と通信することができます。

Docker docker0ブリッジとveth

 上図を理解できれば、複数のDockerコンテナ同士が、どのように通信するのかも分かります。複数のDockerコンテナを起動し、互いにpingによるICMP通信ができるかを確認してみてください。

docker0ブリッジ以外の通信方法

 Dockerでは、docker0ブリッジネットワークを利用しないコンテナ同士の通信方法も存在します。ホストネットワークへの直接接続する方法や、OpenStack環境において仮想スイッチを実現する「Open vSwitch」を使う方法、UNIXドメインソケットとIPC(プロセス間通信)を組み合わせるといった方法です。ホストネットワークへの直接接続は、ブリッジなどを経由せず、コンテナがホストOSのIPを使って直接外部と通信を行う方法ですが、この方法では、コンテナにホストOSのIPアドレスが付与されます。ホストネットワークへの直接接続は、docker run実行時に「--network=host」を付与します。


# docker run -it --network=host --name test02 centos:centos7.2.1511 /bin/bash
# export http_proxy=http://proxy.yoursite.com:8080
# yum install -y iproute
# ip a
...
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
...

 ホストネットワークへの直接接続の場合は、コンテナのIPアドレスがホストOSのIPアドレスになっていることに注意が必要です。

Docker Dockerにおけるさまざまなネットワーク通信手段

 以上で、Docker環境のネットワーク構成やアーキテクチャ、DockerホストとDockerコンテナの通信、コンテナに付与されたIPアドレスの確認、バーチャルイーサネット、そして、ブリッジの状態を確認する方法などを簡単に紹介しました。

 今回ご紹介した内容は、1台の物理サーバで稼働するDocker環境におけるネットワーキングのほんの一部ですが、Dockerのネットワーキングの基本的な仕組みを理解する上で非常に重要な要素です。「なんだか難しそうだ」と感じて最初は戸惑うかもしれませんが、Docker環境におけるネットワークを管理していく上で避けて通れませんので、ぜひ慣れるようにしてください。

(つづく)

古賀政純(こが・まさずみ)

日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリスト。兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国ヒューレット・パッカードからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は日本ヒューレット・パッカードにて、Hadoop、Spark、Docker、Linux、FreeBSDなどのサーバー基盤のプリセールスSE、文書執筆を担当。日本ヒューレット・パッカードが認定するオープンソース・Linux テクノロジーエバンジェリストとして、メディアでの連載記事執筆、講演活動なども行っている。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「OpenStack 実践ガイド」「Docker 実践ガイド」「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード。古賀氏の最新記事が読めるブログはこちら


前のページへ 1|2|3|4|5       

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ