第35回 Open vSwitchで作るDockerのネットワーク(OVSで構築する編):古賀政純の「攻めのITのためのDocker塾」(3/6 ページ)
Dockerでは、OpenStackなどクラウド基盤ソフトウェアでも広く採用されている「Open vSwitch」(OVS)を利用してネットワークを構築することができます。今回は、実際にOVSを利用したネットワークを構築してみましょう。
ホストOSにおけるDockerエンジンの設定
ホストOS上に、最新のDockerエンジンをインストールします。以下のように、curlコマンドでインストールすることが可能です。ホストOSがプロキシサーバ経由でインターネットにアクセスする場合は、適宜プロキシサーバの環境変数を事前に設定してください。
# export http_proxy=http://proxy.your.site.com:8080 ←適宜プロキシサーバを設定 # export https_proxy=http://proxy.your.site.com:8080 ←適宜プロキシサーバを設定 # curl -sSL https://get.docker.com/ | sh
連載33回でご紹介したのと同様に、「/etc/sysconfig/docker」ファイルを読み込むように設定ファイル「docker.service」を記述します。もし、以下の設定ファイル「docker.service」が「/etc/systemd/system」ディレクトリに存在しない場合は、事前に「/usr/lib/systemd/system」ディレクトリからコピーしておく必要があります。
# cd /etc/systemd/system/ # cp /usr/lib/systemd/system/docker.service . # vi ./docker.service # cat /etc/systemd/system/docker.service |grep -v ^# |grep -v ^$ [Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network.target [Service] Type=notify EnvironmentFile=-/etc/sysconfig/docker ←設定ファイルを定義 EnvironmentFile=-/etc/sysconfig/docker-storage ←設定ファイルを定義 EnvironmentFile=-/etc/sysconfig/docker-network ←設定ファイルを定義 ExecStart=/usr/bin/dockerd \ ←複数行にわたるため、「\」を追加 $OPTIONS \ ←設定ファイル内で定義される環境変数を追加 $DOCKER_STORAGE_OPTIONS \ ←設定ファイル内で定義される環境変数を追加 $DOCKER_NETWORK_OPTIONS \ ←設定ファイル内で定義される環境変数を追加 $ADD_REGISTRY \ ←設定ファイル内で定義される環境変数を追加 $BLOCK_REGISTRY \ ←設定ファイル内で定義される環境変数を追加 $INSECURE_REGISTRY ←設定ファイル内で定義される環境変数を追加 ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process [Install] WantedBy=multi-user.target
ホストOSのsystemdに、上記の設定ファイルの変更を通知します。
# systemctl daemon-reload
これでDockerデーモン(/usr/bin/dockerd)が、各設定ファイルに記載された文字列をオプションとして認識できるようになりました。次に、Dockerの設定ファイル「/etc/sysconfig/docker-network」内で、プロキシサーバなどを適切に設定しておきます。
# vi /etc/sysconfig/docker-network http_proxy=http://proxy.your.site.com:8080 https_proxy=http://proxy.your.site.com:8080 no_proxy=localhost,172.16.1.100,/var/run/docker.sock
今回は、「/etc/sysconfig/docker」ファイル内の「OPTIONS行」では何も指定しません。
# vi /etc/sysconfig/docker OPTIONS='' ←今回は、オプションを付与しない DOCKER_CERT_PATH=/etc/docker
ホストOSが起動したら、Dockerエンジンのサービスが自動的に起動するよう設定します。
# systemctl restart docker # systemctl enable docker # systemctl status docker
ホストOSの再起動後、Dockerのバージョンを確認します。
# reboot # docker version Client: Version: 1.12.5 API version: 1.24 Go version: go1.6.4 Git commit: 7392c3b Built: Fri Dec 16 02:23:59 2016 OS/Arch: linux/amd64 Server: Version: 1.12.5 API version: 1.24 Go version: go1.6.4 Git commit: 7392c3b Built: Fri Dec 16 02:23:59 2016 OS/Arch: linux/amd64
関連記事
- 第34回 Open vSwitchで作るDockerのネットワーク(OVSを知る編)
Dockerのネットワークを構成するには、さまざまな方法があります。今回からは、OpenStackなどクラウド基盤ソフトウェアでも広く採用されている「Open vSwitch」(OVS)を利用した方法を取り上げます。OVSの紹介から始めましょう。 - 第33回 Dockerコンテナ同士の通信方法、フラットなネットワークを作る(後編)
引き続き、「Swarmクラスタ」を使わずに複数の物理サーバで稼働するDockerコンテナ同士を通信させる方法について紹介します。前編ではコンテナ用のネットワーク「mynet1」を用いる方法を取り上げましたが、後編ではこれを使わない方法も取り上げてみたいと思います。 - 第32回 Dockerコンテナ同士の通信方法、フラットなネットワークを作る(前編)
複数の物理サーバで稼働するDockerコンテナ同士を通信させるには「Swarmクラスタ」を使います。実はSwarmクラスタを構成することなく、できる場合があります。今回からその方法を紹介していきましょう。 - 【古賀政純の「攻めのITのためのDocker塾」】バックナンバー
Copyright © ITmedia, Inc. All Rights Reserved.