LoginSignup
6
7

More than 5 years have passed since last update.

VirtualBoxのVM上のCentOS7.1+Dockerでpipeworkを使って固定IP化してみる

Last updated at Posted at 2015-11-19

VirtualBoxのVM上のCentOS7.1+Dockerでpipeworkを使って固定IP化してみる

背景

VirtualBoxのVM上のCentOS7.1+Dockerを開発環境のベースにしようと考え中なのですが、IPアドレスをDockerが勝手に割り振ってしまう+NAPTでポートの設定が面倒、というところからpipeworkで固定IP化して仮想ブリッジ経由でホストからアクセスできるようにしてみたいと思います。こうすることで、VirtualBoxのホストからDockerのコンテナにポートの設定を気にせず直接アクセスできるようになります。

なお、世の中的にはDockerでpipeworkを使うのは非推奨の流れのようですが、2015/11/19時点でお手軽に試せるので使ってみました。

参考にした情報

ほとんどこちらの記事を参考にさせていただきました。

前提

  • VirtualBoxのVMにCentOS 7.1とDockerをインストール済みとします

設定手順

VirtualBoxのVMの設定変更

仮想ブリッジと関連付けるネットワークアダプターを別途追加します。用途に応じて「ホストオンリーアダプター」か「ブリッジアダプター」を追加します。

また、追加したネットワークアダプターの「プロミスキャスモード」を「すべて許可」に変更します。

仮想ブリッジを作成

まずbridge-utilsをインストールします。

# yum -y install bridge-utils

仮想ブリッジを作成します。

# nmcli con add type bridge ifname br0
# nmcli con modify bridge-br0 bridge.stp no

次に、追加したネットワークアダプターがブリッジの場合は、以下のようにブリッジするネットワークと同じネットワーク上の仮想ブリッジに割り当てるIPアドレス(x.x.x.x)、ゲートウェイアドレス(y.y.y.y)、DNSサーバアドレス(z.z.z.z)を設定します。

# nmcli con modify bridge-br0 ipv4.method manual ipv4.address x.x.x.x/24 ipv4.gateway y.y.y.y ipv4.dns z.z.z.z

追加したネットワークアダプターがホストオンリーの場合は、以下のようにブリッジするホストオンリーアダプターのネットワーク上の仮想ブリッジに割り当てるIPアドレス(x.x.x.x)を設定します。

# nmcli con modify bridge-br0 ipv4.method manual ipv4.address x.x.x.x/24

次に、作成した仮想ブリッジと追加したネットワークアダプターを関連付けます。ここでは「eth2」を関連付けていますが、各自の環境に合わせて調整してください。

# nmcli con add type bridge-slave ifname eth2 master bridge-br0

サーバ再起動

いったんサーバ再起動して仮想ブリッジを有効化させます。以下のコマンドで設定内容を確認できます。

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.080027bc11fa       no              eth2
docker0         8000.0242fd49b7c0       no

pipeworkのインストール

Githubのリポジトリからgit cloneしてきます。

# yum -y install git
# cd /usr/local/src
# git clone https://github.com/jpetazzo/pipework.git
# ln -s /usr/local/src/pipework/pipework /usr/local/bin/

使用方法

起動したコンテナのコンテナIDを取得します。docker psで確認できます。

追加したネットワークアダプターがブリッジの場合は、コンテナに設定したいIPアドレス(a.b.c.d)、ゲートウェイアドレス(y.y.y.y)を使って以下のようにします。

# pipework br0 コンテナID a.b.c.d/24@y.y.y.y

追加したネットワークアダプターがホストオンリーの場合は、コンテナに設定したいIPアドレス(a.b.c.d)を使って以下のようにします。

# pipework br0 コンテナID a.b.c.d/24

注意点

docker stopするとpipeworkでの設定内容がクリアされるので、再度pipeworkで設定する必要があるようです。

6
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7