Linux 컨테이너용 로컬 템플릿을 만들고 이를 가리키는 방법

Linux 컨테이너용 로컬 템플릿을 만들고 이를 가리키는 방법

Linux 컨테이너를 만들고 싶다고 가정해 보겠습니다. 첫 번째 명령은 항상 다음과 같습니다.

sudo lxc-create -t debian -n p1

템플릿 이름은 일반적으로 "ubuntu"이지만 저는 데비안 팬이기 때문에 데비안으로 바꿨습니다. 최종 결과는 둘 다 동일합니다. /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

이미 작업 중입니다.

관련 정보