dokcerコンテナでDHCPを使ってIPアドレスを割り当てる方法

スポンサード リンク

ovs-docker をつかえば,Dockerコンテナをovsの仮想ブリッジへ接続できる。 接続したNICにDHCPでIPアドレスを割り当てる方法をメモ。

Ubuntu 14.04のDockerコンテナを作成し,DHCPの設定を加える。

$ docker run --privileged --net=none --name=dhcpclient -itd ubuntu:14.04 /bin/bash
$ docker exec dhcpclient echo 'auto eth1 \niface eth1 inet dhcp' > /etc/network/interfaces

ovsの仮想ブリッジを作成し,コンテナを接続する。

$ sudo ovs-vsctl add-br ovs01
$ sudo ovs-docker add-port ovs01 eth1 dhcpclient

念のために設定ファイルを確認する。

$ docker exec dhcpclient cat /etc/network/interfaces

auto eth1
iface eth1 inet dhcp

ここで,いつもどおりにifupしてもエラーがでてIPアドレスを取得できない。

$ docker exec dhcpclient ifup eth1
dhclient: error while loading shared libraries: libc.so.6: cannot open shared object file: Permission denied
Failed to bring up eth1.

理由はわからないが,以下のように操作するとDHCPでIPアドレスが割り当てられる。 原理を理解したいが... よくわからない。

$ docker exec dhcpclient mv /sbin/dhclient /usr/sbin/dhclient
$ docker exec dhcpclient /usr/sbin/dhclient eth1
mv: cannot move '/etc/resolv.conf.dhclient-new.29' to '/etc/resolv.conf': Device or resource busy

Comments !

social