#topicpath ---- Solaris10 x86 6/06 にて、Solaris Container の作成をしてみました。 ファイルシステムは zfs を使ってみます。 * zfs を作る [#m12628e0] まず zfs ファイルシステムのプールを作成します。 # zpool create -f zfspool c0d0s7 * zone 用のファイルシステムを割り当てる [#r9bc5aa4] 10GB 分切り出してみます。 # zfs create zfspool/zone1 # zfs set mountpoint=/export/zone1 zfspool/zone1 # zfs set quota=10G zfspool/zone1 # zfs list NAME USED AVAIL REFER MOUNTPOINT zfspool 156K 66.4G 24.5K /zfspool zfspool/home 35.5K 66.4G 35.5K /export/home zfspool/zone1 24.5K 10.0G 24.5K /export/zone1 /export/zone1 は chmod 700 しておきます。 # chmod 700 /export/zone1 * zone の定義を作成 [#c0bd9a15] zone1 という zone を作成してみます。 IPアドレスは 192.168.1.101 で、NIC は rtls0 を共有することにします。 ファイルシステムは上で切り出した /export/zone1 です。 自動起動も設定します。 # zonecfg -z zone1 zone1: そのような構成済みゾーンはありません 'create' を使用して、新しいゾーンの構成を開始してください。 zonecfg:zone1> create zonecfg:zone1> set zonepath=/export/zone1 zonecfg:zone1> set autoboot=true zonecfg:zone1> add net zonecfg:zone1:net> set address=192.168.1.101 zonecfg:zone1:net> set physical=rtls0 zonecfg:zone1:net> end zonecfg:zone1> verify zonecfg:zone1> commit zonecfg:zone1> exit * 作成した定義の確認 [#ec073218] 定義が作成されたことが確認できます。中身はまだありません。 # zoneadm list -vc ID NAME STATUS PATH 0 global running / - zone1 configured /export/zone1 * zone のインストール [#e8f9bee2] global zone からパッケージをインストールしていきます。 # zoneadm -z zone1 install Preparing to install zone <zone1>. Creating list of files to copy from the global zone. Copying <2471> files to the zone. Initializing zone product registry. Determining zone package initialization order. Preparing to initialize <1061> packages on the zone. Initializing package <290> of <1061>: percent complete: 27% ... Initialized <1061> packages on zone. Zone <zone1> is initialized. The file </export/zone1/root/var/sadm/system/logs/install_log> contains a log of the zone installation. * zone の起動 [#qf712945] # zoneadm -z zone1 boot * コンソール接続 [#f1427782] OS としての初期設定を行うため、コンソール接続します。 言語やタイムゾーン、ホスト名などの設定をしていきます。 # zlogin -C zone1 [ゾーン 'zone1' コンソールに接続しました] ... Select a Language 0. English 1. Japanese Please make a choice (0 - 1), or press h or ? for help: ... (などなど) 全部設定が終われば、プロンプトが出てきます。 これで zone の作成は完了です。 SunOS Release 5.10 Version Generic_118855-15 32-bit Copyright 1983-2005 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Hostname: zone1 zone1 console login: このコンソールは、~^D で抜けます。 * 作成した zone の確認 [#a0d8ee7f] running になっていることが確認できます。 # zoneadm list -vc ID NAME STATUS PATH 0 global running / 2 zone1 running /export/zone1 * ネットワークの確認 [#t555b2eb] ifconfig で IP アドレスなどの確認をしてみました。 ユーザを作ればここで設定した 192.168.1.101 へ SSH 接続ができるので、 リモートから他の設定もできるようになります。 ** global zone [#cdcf5309] # hostname solaris10 # zonename global # ifconfig -a lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 lo0:1: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 zone zone1 inet 127.0.0.1 netmask ff000000 rtls0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.1.2 netmask ffffff00 broadcast 192.168.1.255 ether 0:7:40:1f:63:ca ether 0:7:40:xx:xx:ca rtls0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 zone zone1 inet 192.168.1.101 netmask ffffff00 broadcast 192.168.1.255 ** local zone (zone1) [#ue087f8d] # zonename zone1 # hostname zone1 # ifconfig -a lo0:1: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 rtls0:1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 192.168.1.101 netmask ffffff00 broadcast 192.168.1.255 ---- #comment