Linuxコンテナを作成したいとしましょう。最初のコマンドは常に次のようになります。
sudo lxc-create -t debian -n p1
テンプレート名は通常「ubuntu」ですが、私は Debian ファンなので Debian に変更しました。最終結果は両方とも同じです。 /usr/share/lxc/templates で作成された lxc-debian テンプレートから debian.org からコンポーネントのダウンロードを開始します。
$ sudo lxc-create -t debian -n debian-n
[sudo] password for shirish:
debootstrap is /usr/sbin/debootstrap
Checking cache download in /var/cache/lxc/debian/rootfs-wheezy-amd64 ...
Downloading debian minimal ...
I: Retrieving Release
ローカルのdebian-wheezy.isoイメージファイルがあります。ネットワークにアクセスする代わりにローカルの.isoイメージを使用するように指示する方法はありますか?
ベストアンサー1
提供された引数-t
はのファイルです/usr/share/lxc/templates
。lxc-debian
テンプレートを見ると、ダウンロードを実行するルーチンが呼び出され、download_debian()
操作は次のように実行されますdebootstrap
。
debootstrap --verbose --variant=minbase --arch=$arch \
--include=$packages \
"$release" "$cache/partial-$release-$arch" $MIRROR
マンページを確認すると、debootstrap
ネットワークアドレスの代わりにイメージファイルのローカルディレクトリを使用できます。
…MIRROR can be an http:// or https:// URL, a file:/// URL,
or an ssh:/// URL.
したがって、ローカルデータを使用するには、ファイルシステムのどこかにISOをマウントします。 MIRROR環境変数呼び出しを定義しますlxc-create
。
署名されたリリースファイルが私が試しているISOにないと思われるので、渡す必要があります。--no-check-gpg
これは、パラメータを追加するdebootstrap
ためにテンプレートファイルを編集することを意味します。/usr/share/lxc/templates
--- lxc-debian~ 2015-03-04 10:04:12.628619962 +0000
+++ lxc-debian 2015-03-04 10:04:17.420619851 +0000
@@ -232,7 +232,6 @@
# download a mini debian into a cache
echo "Downloading debian minimal ..."
debootstrap --verbose --variant=minbase --arch=$arch \
+ --no-check-gpg \
--include=$packages \
"$release" "$cache/partial-$release-$arch" $MIRROR
if [ $? -ne 0 ]; then
したがって、調整後:
# mount -o loop debian-7.8.0-amd64-CD-1.iso /mnt
# export MIRROR=file:///mnt
# lxc-create -t debian -n p1 -- -r wheezy
すでに作業中です。