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
이미 작업 중입니다.