Linuxコンテナーのローカルテンプレートを作成し、それを指す方法


8

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イメージファイルがあります。Webにアクセスする代わりに、そのローカルの.isoイメージを使用するように指示する方法はありますか?

回答:


12

に提供される引数-tはのファイルです/usr/share/lxc/templateslxc-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

働いた。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.