LINUX.ORG.RU

docker под chroot, выдает ошибку failed to register layer

 ,


0

3

docker pull vimagick/privoxy

Using default tag: latest

latest: Pulling from vimagick/privoxy

8e3ba11ec2a2: Extracting 

[==================================================>]  

2.207MB/2.207MB

36c2a994d09d: Download complete 

821b025e6874: Download complete 

failed to register layer: Error processing tar file(exit 
status 1): invalid argument

перед chroot монтируются следующие каталоги:

ChrootDir=$1;

if [ -z $ChrootDir ]; then
{
        echo 'Please specify a non null $ChrootDir';
        exit 1;
}
fi;

bind_dir()
{                                                                                           
        DirName=$1;                                                                         
        MountPoint=$ChrootDir""$DirName;                                                    
        umount $MountPoint; >> /dev/null;                                                   
                                                                                            
        mkdir -p $MountPoint;                                                               
        mount --bind $DirName $MountPoint;                                                  
}                                                                                           


bind_file()
{
        FileName=$1;
        MountPoint=$ChrootDir""$FileName;
        umount $MountPoint; >> /dev/null;

        mount --bind $FileName $MountPoint;
}



bind_system()
{

        mkdir -p $ChrootDir/sys $ChrootDir/proc $ChrootDir/dev $ChrootDir/usr/src $ChrootDir/lib/modules $ChrootDir/utils $ChrootDir/download $ChrootDir/home $ChrootDir/var/run2;

        bind_dir /sys;
        bind_dir /proc;
        bind_dir /dev;
        bind_dir /dev/pts;
        bind_dir /usr/src;
        bind_dir /lib/modules;
        bind_dir /utils;

        bind_dir /download;
        bind_dir /home;
        bind_dir /var/run2/mysqld;



        bind_dir /data_root;
#       bind_dir /data_root/data/versions;
#       bind_dir /data_root/data/domains;

#       bind_file /etc/passwd;
#       bind_file /etc/group;
#       bind_file /etc/shadow;

        bind_file /etc/hosts;
        bind_file /etc/hostname;
        bind_file /etc/localtime;
        bind_file /etc/timezone;
        bind_file /etc/resolv.conf;
#       bind_file /root/.Xauthority;

}

bind_system;


Последнее исправление: linlin (всего исправлений: 4)

происходит такая же ошибка при попытке pull любого пакета

linlin
() автор топика

В смысле в чруте докер запускаешь? А он так могет?

dpood
()
Ответ на: комментарий от Jopich1

ЗАЧЕМ chroot если есть docker ?

Есть установленный линукс Debian с userspace 32 bit, установил 64 битное ядро и добавил архитектуру amd64 но docker-ce поставить не удается, ругается, что мол не может поставить некоторые пакеты :amd64, а если их посмотреть, то у них указана архитектура all, т.е. они архитектурно независимые на самом деле. Что делать пока непонятно кроме переустановки всего линуха с userspace 64bit. Хотел по быстрому выкрутиться с помощью chroot. В chroot docker прекрасно установился, только вот не хочет работать как надо (см. первое сообщение)

ЗАЧЕМ docker если есть chroot ?

В docker готовы многие нужные штуковины, их хотелось бы заюзать, но пока не получается работоспособный докер добыть (

linlin
() автор топика
Ответ на: комментарий от linlin

В docker готовы многие нужные штуковины,

Нда выросло поколение dockerрастов.

Jopich1
()
Последнее исправление: Jopich1 (всего исправлений: 2)
Ответ на: комментарий от linlin

Есть установленный линукс Debian с userspace 32 bit, установил 64 битное ядро

То есть, теперь у вас нет Linux. Ваш пример с chroot я понять не в силах. Но это ничего, что у вас не задана папка для образов Docker-а (по умолчанию /var/lib/docker/итд)?

Partisan ★★★★★
()
Ответ на: комментарий от Partisan

А что тут понимать, с помощью chroot я получаю 64bit userspace в который пакет docker ставится без проблем

Разве при установке deb пакета настройки типа /var/lib/docker/ не устанавливаются автоматически?

linlin
() автор топика
Ответ на: комментарий от linlin

Я имел ввиду, что может быть у вашего пользователя нет прав на него

Partisan ★★★★★
()
Ответ на: комментарий от linlin

Что нужно сделать, чтобы задействовать multilib в моем случае?

Т.е. чтобы docker64 заработал в 32bit userspace

linlin
() автор топика

фигня, ты запусти докер32 а внутри него докер64. ехал докер через докер видит докер докер докер.

Anoxemian ★★★★★
()
Ответ на: комментарий от linlin

Попробуйте выполнить

apt install --reinstall packagename
для пакетов с архитектурой all.

SR_team ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.