コンテナ側で固定IP設定するのもいいけど、lxc-cloneして使う場合、外側で管理しないと辛い。
ということで、コンテナ内はデフォルトのDHCP設定のままで、ホスト側で制御したい。
一番本家っぽいところを読む・・・
https://help.ubuntu.com/lts/serverguide/lxc.html#lxc-network
やっぱり、ありますね。方法が。
/etc/default/lxc-net ファイルの以下の記述があるんで、コメント外す
LXC_DHCP_CONFILE=/etc/lxc/dnsmasq.conf
LXC_DOMAIN="lxc" ←必要かなぁ。dnsmasqが使うかな。
/etc/lxc/dnsmasq.conf を作成して以下のように記述
dhcp-host=ubu01,10.0.3.11
dhcp-host=ubu02,10.0.3.12
dhcp-host=ubu03,10.0.3.13
もしくは
dhcp-hostsfile=/etc/lxc/dnsmasq-hosts.conf
と書いて、別ファイルにまとめることも出来るそうな。
$ sudo service lxc-net stop
$ sudo service lxc-net start
とかじゃなくてホスト再起動のほうがいいかも。
その後、コンテナを起動すると、指定アドレスになった。DHCP側で管理できるってことだね。
楽ちん。
楽ちん。
ホスト側から名前でアクセスしたい
IP管理するんだったら全部 hosts ファイルに書くっていう手もあるが、それすら面倒くさい。
本家のドキュメントを読むと
server=/lxc/10.0.3.1 を /etc/dnsmasq.conf に書き加えろとか書いてあるんだけど、効果なし。
あちこちの記事でも書き加える場所とか説明がまちまちで、よくわからん。DNS in Ubuntu + LXC が参考になりました。
/etc/resolvconf/resolv.conf.d/head とか /etc/network/interface当たりに
nameserver 10.0.3.1を加えればいいだけだった。
$ sudo resolveconf -u
更新して
$ ping ubu01
$ ping ubu01.lxc
が出来るようになった。これで、dhcp-hostでIP指定してなくても名前解決が出来るんで
更に楽ちん。
https://github.com/jeremiahsnapp/dev-lxc
これも面白そう。高度すぎ?
0 件のコメント:
コメントを投稿